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:
Similar Reads
Non-linear Components In electrical circuits, Non-linear Components are electronic devices that need an external power source to operate actively. Non-Linear Components are those that are changed with respect to the voltage and current. Elements that do not follow ohm's law are called Non-linear Components. Non-linear Co
11 min read
Spring Boot Tutorial Spring Boot is a Java framework that makes it easier to create and run Java applications. It simplifies the configuration and setup process, allowing developers to focus more on writing code for their applications. This Spring Boot Tutorial is a comprehensive guide that covers both basic and advance
10 min read
Class Diagram | Unified Modeling Language (UML) A UML class diagram is a visual tool that represents the structure of a system by showing its classes, attributes, methods, and the relationships between them. It helps everyone involved in a projectâlike developers and designersâunderstand how the system is organized and how its components interact
12 min read
3-Phase Inverter An inverter is a fundamental electrical device designed primarily for the conversion of direct current into alternating current . This versatile device , also known as a variable frequency drive , plays a vital role in a wide range of applications , including variable frequency drives and high power
13 min read
Backpropagation in Neural Network Back Propagation is also known as "Backward Propagation of Errors" is a method used to train neural network . Its goal is to reduce the difference between the modelâs predicted output and the actual output by adjusting the weights and biases in the network.It works iteratively to adjust weights and
9 min read
What is Vacuum Circuit Breaker? A vacuum circuit breaker is a type of breaker that utilizes a vacuum as the medium to extinguish electrical arcs. Within this circuit breaker, there is a vacuum interrupter that houses the stationary and mobile contacts in a permanently sealed enclosure. When the contacts are separated in a high vac
13 min read
Polymorphism in Java Polymorphism in Java is one of the core concepts in object-oriented programming (OOP) that allows objects to behave differently based on their specific class type. The word polymorphism means having many forms, and it comes from the Greek words poly (many) and morph (forms), this means one entity ca
7 min read
CTE in SQL In SQL, a Common Table Expression (CTE) is an essential tool for simplifying complex queries and making them more readable. By defining temporary result sets that can be referenced multiple times, a CTE in SQL allows developers to break down complicated logic into manageable parts. CTEs help with hi
6 min read
Python Variables In Python, variables are used to store data that can be referenced and manipulated during program execution. A variable is essentially a name that is assigned to a value. Unlike many other programming languages, Python variables do not require explicit declaration of type. The type of the variable i
6 min read
Spring Boot Interview Questions and Answers Spring Boot is a Java-based framework used to develop stand-alone, production-ready applications with minimal configuration. Introduced by Pivotal in 2014, it simplifies the development of Spring applications by offering embedded servers, auto-configuration, and fast startup. Many top companies, inc
15+ min read