Skip to content
geeksforgeeks
  • Tutorials
    • Python
    • Java
    • Data Structures & Algorithms
    • ML & Data Science
    • Interview Corner
    • Programming Languages
    • Web Development
    • CS Subjects
    • DevOps And Linux
    • School Learning
    • Practice Coding Problems
  • Courses
    • DSA to Development
    • Get IBM Certification
    • Newly Launched!
      • Master Django Framework
      • Become AWS Certified
    • For Working Professionals
      • Interview 101: DSA & System Design
      • Data Science Training Program
      • JAVA Backend Development (Live)
      • DevOps Engineering (LIVE)
      • Data Structures & Algorithms in Python
    • For Students
      • Placement Preparation Course
      • Data Science (Live)
      • Data Structure & Algorithm-Self Paced (C++/JAVA)
      • Master Competitive Programming (Live)
      • Full Stack Development with React & Node JS (Live)
    • Full Stack Development
    • Data Science Program
    • All Courses
  • DSA
  • Practice Problems
  • C
  • C++
  • Java
  • Python
  • JavaScript
  • Data Science
  • Machine Learning
  • Courses
  • Linux
  • DevOps
  • SQL
  • Web Development
  • System Design
  • Aptitude
  • GfG Premium
Open In App
Next Article:
Formats in Perl
Next article icon

Formats in Perl

Last Updated : 19 Jul, 2019
Comments
Improve
Suggest changes
Like Article
Like
Report
Formats are the writing templates used in Perl to output the reports. Perl has a mechanism which helps in generating simple reports and charts. Instead of executing, Formats are declared, so they may occur at any point in the program. Formats have their own namespace apart from the other types in Perl i.e. function named "tron" is not same as format named "tron". However, name of the filehandle in the program is the default name for the format associated with that filehandle.

Defining a Format

Syntax to define a Perl Format:
  format FormatName =  fieldline  value_1, value_2, value_3  fieldline  value_1, value_2, value_3  .  
- Name of the format is denoted by the FormatName. - Fieldline is a particular way used to format the data. Fieldline can also hold text or fieldholders. - Value lines denotes/describes the values which will be entered into the fieldlines. - Format is ended by a single period (.) - Fieldholders have the space for the data which will be entered later. Syntax for Fieldholders:
  @<<<<<<<       left-justified (with 7 field spaces by counting '@' and '<')  @|||||||       center-justified  @###.####      numeric fieldholder  @*             multiline fieldholder  

Using a Format

Write keyword is used to call on the format declaration.
Write FormatName;
Format name is the name of an open file handle and the write statement sends the output to the same file handle. In order to send the data to STDOUT, format name needs to be associated with the STDOUT file handle. Note: Use the select() function for making sure that STDOUT is the selected file handle.
select (STDOUT);
In order to associate format name with STDOUT by setting the new format name with STDOUT, use the variables like $~ or $Format_Name
$~ = "Format_Name";
Note: For writing report in any other file handle apart from the STDOUT, use the select() function to select that file handle. Example: Input: Using STDOUT. Perl
#!/usr/bin/perl print "Content-type: text/html\n\n";   @First_Name = qw(Karthik Raman Shivam Tarun); @Last_Name = qw(Singh Biswas Anand Mishra); @ID = qw(101 186 009 359); @Phone_Number = qw(963x 885x 734x 921x);   format DATA =  @<<<<<<<<<<<<<<<@<<<<<<<<<<<<<<<@<<<<<<<<<<<<<<<@<<<<<<<<<<<<<<< $First_Name[$k] $Last_Name[$k]  $ID[$k]         $Phone_Number[$k]   .   select(STDOUT); $~ = DATA; $k = 0; while ($k <= $#First_Name) {     write;     $k++; } 
Output : Input: Using other file handle(Printing the output into a text file.) Perl
#!/usr/bin/perl  print "Content-type: text/html\n\n";   @First_Name = qw(Karthik Raman Shivam Tarun); @Last_Name = qw(Singh Biswas Anand Mishra); @ID = qw(101 186 009 359); @Phone_Number = qw(963x 885x 734x 921x);   format DATA =  @<<<<<<<<<<<<<<<@<<<<<<<<<<<<<<<@<<<<<<<<<<<<<<<@<<<<<<<<<<<<<< $First_Name[$k] $Last_Name[$k]  $ID[$k]         $Phone_Number[$k]  .  open(FILE, ">file.txt"); select FILE; $~ = DATA;  $k = 0; while ($k <= $#First_Name) {     write;     $k++; }  close FILE; 
Output : File where data is printed:

Report Header and Footer

Header is something that appears at the top of each page. Instead of defining a template, just define a header and assign it to $^ or $FORMAT_NAME_TOP. Footer has a fixed size. It can be achieved by checking for variable $-. You can even print the footer by yourself if necessary using the syntax given below,
  format FORMAT_NAME_BOTTOM  End of Page $%  
Example: Input: Using STDOUT Perl
#!/usr/bin/perl print "Content-type: text/html\n\n";   format DATA_TOP =  @||||||||||||||||||||||||||||||||||||||||||||||||||||                   "Staff Members"                ---------------------- First           Last            ID              Phone ------------------------------------------------------ .   @First_Name = qw(Karthik Raman Shivam Tarun); @Last_Name = qw(Singh Biswas Anand Mishra); @ID = qw(101 186 009 359); @Phone_Number = qw(963x 885x 734x 921x);   format DATA =  @<<<<<<<<<<<<<<<@<<<<<<<<<<<<<<<@<<<<<<<<<<<<<<<@<<<<<<<<<<<<<<< $First_Name[$k] $Last_Name[$k]  $ID[$k]         $Phone_Number[$k]   .   select (STDOUT); $~ = DATA; $^ = DATA_TOP; $k = 0; while ($k <= $#First_Name) {     write;     $k++; } 
Output: Input: Getting output into a text file. Perl
#!/usr/bin/perl print "Content-type: text/html\n\n";  format DATA_TOP =  @||||||||||||||||||||||||||||||||||||||||||||||||||||                   "Staff Members"                ---------------------- First           Last            ID              Phone ------------------------------------------------------ .  @First_Name = qw(Karthik Raman Shivam Tarun); @Last_Name = qw(Singh Biswas Anand Mishra); @ID = qw(101 186 009 359); @Phone_Number = qw(963x 885x 734x 921x);   format DATA =  @<<<<<<<<<<<<<<<@<<<<<<<<<<<<<<<@<<<<<<<<<<<<<<<@<<<<<<<<<<<<<< $First_Name[$k] $Last_Name[$k]  $ID[$k]         $Phone_Number[$k]  .  open (FILE, ">file.txt"); select FILE; $~ = DATA; $^ = DATA_TOP;  $k = 0; while ($k <= $#First_Name) {     write;     $k++; } close FILE; 
Output: File where data is printed:

Pagination

Pagination comes into the picture when you have a long report which will not fit in a single page. Use of variables like $% or $FORMAT_PAGE_NUMBER along with the header in the format helps in defining the page number to more than one page. Default number of lines in a page is 60 but it can be set manually too by using the variables $= or $FORMAT_LINES_PER_PAGE. Example: Perl
#!/usr/bin/perl print "Content-type: text/html\n\n";  format DATA_TOP =  @>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "[Page $%]" @||||||||||||||||||||||||||||||||||||||||||||||||||||                   "Staff Members"                ---------------------- First           Last            ID              Phone ------------------------------------------------------ .  @First_Name = qw(Karthik Raman Shivam Tarun); @Last_Name = qw(Singh Biswas Anand Mishra); @ID = qw(101 186 009 359); @Phone_Number = qw(963x 885x 734x 921x);   format DATA =  @<<<<<<<<<<<<<<<@<<<<<<<<<<<<<<<@<<<<<<<<<<<<<<<@<<<<<<<<<<<<<<< $First_Name[$k] $Last_Name[$k]  $ID[$k]         $Phone_Number[$k]  .  select (STDOUT); $~ = DATA; $^ = DATA_TOP; $= = 1;  $k = 0; while ($k <= $#First_Name) {     write;     $k++; } 
Output:

Next Article
Formats in Perl

A

akshatyadav
Improve
Article Tags :
  • Perl

Similar Reads

    Coercions in Perl
    In Perl, there are values of different types like strings, integers, rational numbers, and more. Coercion is responsible for converting one data type of data or object to another, behind the scenes where we magically just get what we want. It generally refers to "implicit type conversion" which is a
    4 min read
    Perl | Arrays
    In Perl, array is a special type of variable. The array is used to store the list of values and each object of the list is termed as an element. Elements can either be a number, string, or any type of scalar data including another variable. Example: @number = (50, 70, 46); @names = ("Geeks", "For",
    6 min read
    Perl | abs() function
    This function returns the absolute value of its argument. If a pure integer value is passed then it will return it as it is, but if a string is passed then it will return zero. If VALUE is omitted then it uses $_ Syntax: abs(VALUE) Parameter: VALUE: It is a required number which can be either positi
    2 min read
    Perl | y Operator
    The y operator in Perl translates all characters of SearchList into the corresponding characters of ReplacementList. Here the SearchList is the given input characters which are to be converted into the corresponding characters given in the ReplacementList. Syntax: y/SearchList/ReplacementList/ Retur
    2 min read
    Error Handling in Perl
    Error Handling in Perl is the process of taking appropriate action against a program that causes difficulty in execution because of some error in the code or the compiler. Processes are prone to errors. For example, if opening a file that does not exist raises an error, or accessing a variable that
    5 min read
geeksforgeeks-footer-logo
Corporate & Communications Address:
A-143, 7th Floor, Sovereign Corporate Tower, Sector- 136, Noida, Uttar Pradesh (201305)
Registered Address:
K 061, Tower K, Gulshan Vivante Apartment, Sector 137, Noida, Gautam Buddh Nagar, Uttar Pradesh, 201305
GFG App on Play Store GFG App on App Store
Advertise with us
  • Company
  • About Us
  • Legal
  • Privacy Policy
  • In Media
  • Contact Us
  • Advertise with us
  • GFG Corporate Solution
  • Placement Training Program
  • Languages
  • Python
  • Java
  • C++
  • PHP
  • GoLang
  • SQL
  • R Language
  • Android Tutorial
  • Tutorials Archive
  • DSA
  • Data Structures
  • Algorithms
  • DSA for Beginners
  • Basic DSA Problems
  • DSA Roadmap
  • Top 100 DSA Interview Problems
  • DSA Roadmap by Sandeep Jain
  • All Cheat Sheets
  • Data Science & ML
  • Data Science With Python
  • Data Science For Beginner
  • Machine Learning
  • ML Maths
  • Data Visualisation
  • Pandas
  • NumPy
  • NLP
  • Deep Learning
  • Web Technologies
  • HTML
  • CSS
  • JavaScript
  • TypeScript
  • ReactJS
  • NextJS
  • Bootstrap
  • Web Design
  • Python Tutorial
  • Python Programming Examples
  • Python Projects
  • Python Tkinter
  • Python Web Scraping
  • OpenCV Tutorial
  • Python Interview Question
  • Django
  • Computer Science
  • Operating Systems
  • Computer Network
  • Database Management System
  • Software Engineering
  • Digital Logic Design
  • Engineering Maths
  • Software Development
  • Software Testing
  • DevOps
  • Git
  • Linux
  • AWS
  • Docker
  • Kubernetes
  • Azure
  • GCP
  • DevOps Roadmap
  • System Design
  • High Level Design
  • Low Level Design
  • UML Diagrams
  • Interview Guide
  • Design Patterns
  • OOAD
  • System Design Bootcamp
  • Interview Questions
  • Inteview Preparation
  • Competitive Programming
  • Top DS or Algo for CP
  • Company-Wise Recruitment Process
  • Company-Wise Preparation
  • Aptitude Preparation
  • Puzzles
  • School Subjects
  • Mathematics
  • Physics
  • Chemistry
  • Biology
  • Social Science
  • English Grammar
  • Commerce
  • World GK
  • GeeksforGeeks Videos
  • DSA
  • Python
  • Java
  • C++
  • Web Development
  • Data Science
  • CS Subjects
@GeeksforGeeks, Sanchhaya Education Private Limited, All rights reserved
We use cookies to ensure you have the best browsing experience on our website. By using our site, you acknowledge that you have read and understood our Cookie Policy & Privacy Policy
Lightbox
Improvement
Suggest Changes
Help us improve. Share your suggestions to enhance the article. Contribute your expertise and make a difference in the GeeksforGeeks portal.
geeksforgeeks-suggest-icon
Create Improvement
Enhance the article with your expertise. Contribute to the GeeksforGeeks community and help create better learning resources for all.
geeksforgeeks-improvement-icon
Suggest Changes
min 4 words, max Words Limit:1000

Thank You!

Your suggestions are valuable to us.

What kind of Experience do you want to share?

Interview Experiences
Admission Experiences
Career Journeys
Work Experiences
Campus Experiences
Competitive Exam Experiences