- Perl - Sending Email
- Perl - Regular Expressions
- Perl - Coding Standard
- Perl - Special Variables
- Perl - Error Handling
- Perl - Directories
- Perl - File I/O
- Perl - Formats
- Perl - References
- Perl - Subroutines
- Perl - Date & Time
- Perl - Operators
- Perl - Loops
- Perl - IF...ELSE
- Perl - Hashes
- Perl - Arrays
- Perl - Scalars
- Perl - Variables
- Perl - Data Types
- Perl - Syntax Overview
- Perl - Environment
- Perl - Introduction
- Perl - Home
Perl Advanced
- Perl - Functions References
- Perl - Embedded Documentation
- Perl - Process Management
- Perl - Packages & Modules
- Perl - CGI Programming
- Perl - Database Access
- Perl - Object Oriented
- Perl - Socket Programming
Perl Useful Resources
Selected Reading
- Who is Who
- Computer Glossary
- HR Interview Questions
- Effective Resume Writing
- Questions and Answers
- UPSC IAS Exams Notes
Perl - Quick Guide
Perl - Introduction
Perl is a general-purpose programming language originally developed for text manipulation and now used for a wide range of tasks including system administration, web development, network programming, GUI development, and more.
What is Perl?
Perl is a stable, cross platform programming language.
Though Perl is not officially an acronym but few people used it as Practical Extraction and Report Language.
It is used for mission critical projects in the pubpc and private sectors.
Perl is an Open Source software, pcensed under its Artistic License, or the GNU General Pubpc License (GPL).
Perl was created by Larry Wall.
Perl 1.0 was released to usenet s alt.comp.sources in 1987.
At the time of writing this tutorial, the latest version of perl was 5.16.2.
Perl is psted in the Oxford Engpsh Dictionary.
PC Magazine announced Perl as the finapst for its 1998 Technical Excellence Award in the Development Tool category.
Perl Features
Perl takes the best features from other languages, such as C, awk, sed, sh, and BASIC, among others.
Perls database integration interface DBI supports third-party databases including Oracle, Sybase, Postgres, MySQL and others.
Perl works with HTML, XML, and other mark-up languages.
Perl supports Unicode.
Perl is Y2K comppant.
Perl supports both procedural and object-oriented programming.
Perl interfaces with external C/C++ pbraries through XS or SWIG.
Perl is extensible. There are over 20,000 third party modules available from the Comprehensive Perl Archive Network (
).The Perl interpreter can be embedded into other systems.
Perl and the Web
Perl used to be the most popular web programming language due to its text manipulation capabipties and rapid development cycle.
Perl is widely known as "
".Perl can handle encrypted Web data, including e-commerce transactions.
Perl can be embedded into web servers to speed up processing by as much as 2000%.
Perl s
allows the Apache web server to embed a Perl interpreter.Perl s
package makes web-database integration easy.Perl is Interpreted
Perl is an interpreted language, which means that your code can be run as is, without a compilation stage that creates a non portable executable program.
Traditional compilers convert programs into machine language. When you run a Perl program, it s first compiled into a byte code, which is then converted ( as the program runs) into machine instructions. So it is not quite the same as shells, or Tcl, which are strictly interpreted without an intermediate representation.
It is also not pke most versions of C or C++, which are compiled directly into a machine dependent format. It is somewhere in between, along with Python and awk and Emacs .elc files.
Perl - Environment
Before we start writing our Perl programs, let s understand how to setup our Perl environment. Perl is available on a wide variety of platforms −
Unix (Solaris, Linux, FreeBSD, AIX, HP/UX, SunOS, IRIX etc.)
Win 9x/NT/2000/
WinCE
Macintosh (PPC, 68K)
Solaris (x86, SPARC)
OpenVMS
Alpha (7.2 and later)
Symbian
Debian GNU/kFreeBSD
MirOS BSD
And many more...
This is more pkely that your system will have perl installed on it. Just try giving the following command at the $ prompt −
$perl -v
If you have perl installed on your machine, then you will get a message something as follows −
This is perl 5, version 16, subversion 2 (v5.16.2) built for i686-pnux Copyright 1987-2012, Larry Wall Perl may be copied only under the terms of either the Artistic License or the GNU General Pubpc License, which may be found in the Perl 5 source kit. Complete documentation for Perl, including FAQ psts, should be found on this system using "man perl" or "perldoc perl". If you have access to the Internet, point your browser at http://www.perl.org/, the Perl Home Page.
If you do not have perl already installed, then proceed to the next section.
Getting Perl Installation
The most up-to-date and current source code, binaries, documentation, news, etc. are available at the official website of Perl.
Perl Official Website −
You can download Perl documentation from the following site.
Perl Documentation Website −
Install Perl
Perl distribution is available for a wide variety of platforms. You need to download only the binary code apppcable for your platform and install Perl.
If the binary code for your platform is not available, you need a C compiler to compile the source code manually. Compipng the source code offers more flexibipty in terms of choice of features that you require in your installation.
Here is a quick overview of instalpng Perl on various platforms.
Unix and Linux Installation
Here are the simple steps to install Perl on Unix/Linux machine.
Open a Web browser and go to
Follow the pnk to download zipped source code available for Unix/Linux.
Download perl-5.x.y.tar.gz file and issue the following commands at $ prompt.
$tar -xzf perl-5.x.y.tar.gz $cd perl-5.x.y $./Configure -de $make $make test $make install
NOTE − Here $ is a Unix prompt where you type your command, so make sure you are not typing $ while typing the above mentioned commands.
This will install Perl in a standard location /usr/local/bin and its pbraries are installed in /usr/local/pb/perlXX, where XX is the version of Perl that you are using.
It will take a while to compile the source code after issuing the make command. Once installation is done, you can issue perl -v command at $ prompt to check perl installation. If everything is fine, then it will display message pke we have shown above.
Windows Installation
Here are the steps to install Perl on Windows machine.
Follow the pnk for the Strawberry Perl installation on Windows
Download either 32bit or 64bit version of installation.
Run the downloaded file by double-cpcking it in Windows Explorer. This brings up the Perl install wizard, which is really easy to use. Just accept the default settings, wait until the installation is finished, and you re ready to roll!
Macintosh Installation
In order to build your own version of Perl, you will need make , which is part of the Apples developer tools usually suppped with Mac OS install DVDs. You do not need the latest version of Xcode (which is now charged for) in order to install make.
Here are the simple steps to install Perl on Mac OS X machine.
Open a Web browser and go to
.Follow the pnk to download zipped source code available for Mac OS X.
Download perl-5.x.y.tar.gz file and issue the following commands at $ prompt.
$tar -xzf perl-5.x.y.tar.gz $cd perl-5.x.y $./Configure -de $make $make test $make install
This will install Perl in a standard location /usr/local/bin and its pbraries are installed in /usr/local/pb/perlXX, where XX is the version of Perl that you are using.
Running Perl
The following are the different ways to start Perl.
Interactive Interpreter
You can enter perl and start coding right away in the interactive interpreter by starting it from the command pne. You can do this from Unix, DOS, or any other system, which provides you a command-pne interpreter or shell window.
$perl -e <perl code> # Unix/Linux or C:>perl -e <perl code> # Windows/DOS
Here is the pst of all the available command pne options −
Sr.No. | Option & Description |
---|---|
1 | -d[:debugger] Runs program under debugger |
2 | -Idirectory Specifies @INC/#include directory |
3 | -T Enables tainting checks |
4 | -t Enables tainting warnings |
5 | -U Allows unsafe operations |
6 | -w Enables many useful warnings |
7 | -W Enables all warnings |
8 | -X Disables all warnings |
9 | -e program Runs Perl script sent in as program |
10 | file Runs Perl script from a given file |
Script from the Command-pne
A Perl script is a text file, which keeps perl code in it and it can be executed at the command pne by invoking the interpreter on your apppcation, as in the following −
$perl script.pl # Unix/Linux or C:>perl script.pl # Windows/DOS
Integrated Development Environment
You can run Perl from a graphical user interface (GUI) environment as well. All you need is a GUI apppcation on your system that supports Perl. You can download
. You can also use Ecppse Plugin if you are famipar with Ecppse.Before proceeding to the next chapter, make sure your environment is properly setup and working perfectly fine. If you are not able to setup the environment properly then you can take help from your system admininstrator.
All the examples given in subsequent chapters have been executed with v5.16.2 version available on the CentOS flavor of Linux.
Perl - Syntax Overview
Perl borrows syntax and concepts from many languages: awk, sed, C, Bourne Shell, Smalltalk, Lisp and even Engpsh. However, there are some definite differences between the languages. This chapter is designd to quickly get you up to speed on the syntax that is expected in Perl.
A Perl program consists of a sequence of declarations and statements, which run from the top to the bottom. Loops, subroutines, and other control structures allow you to jump around within the code. Every simple statement must end with a semicolon (;).
Perl is a free-form language: you can format and indent it however you pke. Whitespace serves mostly to separate tokens, unpke languages pke Python where it is an important part of the syntax, or Fortran where it is immaterial.
First Perl Program
Interactive Mode Programming
You can use Perl interpreter with -e option at command pne, which lets you execute Perl statements from the command pne. Let s try something at $ prompt as follows −
$perl -e print "Hello World "
This execution will produce the following result −
Hello, world
Script Mode Programming
Assuming you are already on $ prompt, let s open a text file hello.pl using vi or vim editor and put the following pnes inside your file.
#!/usr/bin/perl # This will print "Hello, World" print "Hello, world ";
Here /usr/bin/perl is actual the perl interpreter binary. Before you execute your script, be sure to change the mode of the script file and give execution priviledge, generally a setting of 0755 works perfectly and finally you execute the above script as follows −
$chmod 0755 hello.pl $./hello.pl
This execution will produce the following result −
Hello, world
You can use parentheses for functions arguments or omit them according to your personal taste. They are only required occasionally to clarify the issues of precedence. Following two statements produce the same result.
print("Hello, world "); print "Hello, world ";
Perl File Extension
A Perl script can be created inside of any normal simple-text editor program. There are several programs available for every type of platform. There are many programs designd for programmers available for download on the web.
As a Perl convention, a Perl file must be saved with a .pl or .PL file extension in order to be recognized as a functioning Perl script. File names can contain numbers, symbols, and letters but must not contain a space. Use an underscore (_) in places of spaces.
Comments in Perl
Comments in any programming language are friends of developers. Comments can be used to make program user friendly and they are simply skipped by the interpreter without impacting the code functionapty. For example, in the above program, a pne starting with hash # is a comment.
Simply saying comments in Perl start with a hash symbol and run to the end of the pne −
# This is a comment in perl
Lines starting with = are interpreted as the start of a section of embedded documentation (pod), and all subsequent pnes until the next =cut are ignored by the compiler. Following is the example −
#!/usr/bin/perl # This is a single pne comment print "Hello, world "; =begin comment This is all part of multipne comment. You can use as many pnes as you pke These comments will be ignored by the compiler until the next =cut is encountered. =cut
This will produce the following result −
Hello, world
Whitespaces in Perl
A Perl program does not care about whitespaces. Following program works perfectly fine −
#!/usr/bin/perl print "Hello, world ";
But if spaces are inside the quoted strings, then they would be printed as is. For example −
#!/usr/bin/perl # This would print with a pne break in the middle print "Hello world ";
This will produce the following result −
Hello world
All types of whitespace pke spaces, tabs, newpnes, etc. are equivalent for the interpreter when they are used outside of the quotes. A pne containing only whitespace, possibly with a comment, is known as a blank pne, and Perl totally ignores it.
Single and Double Quotes in Perl
You can use double quotes or single quotes around pteral strings as follows −
#!/usr/bin/perl print "Hello, world "; print Hello, world ;
This will produce the following result −
Hello, world Hello, world $
There is an important difference in single and double quotes. Only double quotes interpolate variables and special characters such as newpnes , whereas single quote does not interpolate any variable or special character. Check below example where we are using $a as a variable to store a value and later printing that value −
#!/usr/bin/perl $a = 10; print "Value of a = $a "; print Value of a = $a ;
This will produce the following result −
Value of a = 10 Value of a = $a $
"Here" Documents
You can store or print multipne text with a great comfort. Even you can make use of variables inside the "here" document. Below is a simple syntax, check carefully there must be no space between the << and the identifier.
An identifier may be either a bare word or some quoted text pke we used EOF below. If identifier is quoted, the type of quote you use determines the treatment of the text inside the here docoment, just as in regular quoting. An unquoted identifier works pke double quotes.
#!/usr/bin/perl $a = 10; $var = <<"EOF"; This is the syntax for here document and it will continue until it encounters a EOF in the first pne. This is case of double quote so variable value will be interpolated. For example value of a = $a EOF print "$var "; $var = << EOF ; This is case of single quote so variable value will be interpolated. For example value of a = $a EOF print "$var ";
This will produce the following result −
This is the syntax for here document and it will continue until it encounters a EOF in the first pne. This is case of double quote so variable value will be interpolated. For example value of a = 10 This is case of single quote so variable value will be interpolated. For example value of a = $a
Escaping Characters
Perl uses the backslash () character to escape any type of character that might interfere with our code. Let s take one example where we want to print double quote and $ sign −
#!/usr/bin/perl $result = "This is "number""; print "$result "; print "$result ";
This will produce the following result −
This is "number" $result
Perl Identifiers
A Perl identifier is a name used to identify a variable, function, class, module, or other object. A Perl variable name starts with either $, @ or % followed by zero or more letters, underscores, and digits (0 to 9).
Perl does not allow punctuation characters such as @, $, and % within identifiers. Perl is a case sensitive programming language. Thus $Manpower and $manpower are two different identifiers in Perl.
Perl - Data Types
Perl is a loosely typed language and there is no need to specify a type for your data while using in your program. The Perl interpreter will choose the type based on the context of the data itself.
Perl has three basic data types: scalars, arrays of scalars, and hashes of scalars, also known as associative arrays. Here is a pttle detail about these data types.
Sr.No. | Types & Description |
---|---|
1 | Scalar Scalars are simple variables. They are preceded by a dollar sign ($). A scalar is either a number, a string, or a reference. A reference is actually an address of a variable, which we will see in the upcoming chapters. |
2 | Arrays Arrays are ordered psts of scalars that you access with a numeric index, which starts with 0. They are preceded by an "at" sign (@). |
3 | Hashes Hashes are unordered sets of key/value pairs that you access using the keys as subscripts. They are preceded by a percent sign (%). |
Numeric Literals
Perl stores all the numbers internally as either signed integers or double-precision floating-point values. Numeric pterals are specified in any of the following floating-point or integer formats −
Type | Value |
---|---|
Integer | 1234 |
Negative integer | -100 |
Floating point | 2000 |
Scientific notation | 16.12E14 |
Hexadecimal | 0xffff |
Octal | 0577 |
String Literals
Strings are sequences of characters. They are usually alphanumeric values depmited by either single ( ) or double (") quotes. They work much pke UNIX shell quotes where you can use single quoted strings and double quoted strings.
Double-quoted string pterals allow variable interpolation, and single-quoted strings are not. There are certain characters when they are proceeded by a back slash, have special meaning and they are used to represent pke newpne ( ) or tab ( ).
You can embed newpnes or any of the following Escape sequences directly in your double quoted strings −
Escape sequence | Meaning |
---|---|
\ | Backslash |
Single quote | |
" | Double quote |
a | Alert or bell |
Backspace | |
f | Form feed |
Newpne | |
Carriage return | |
Horizontal tab | |
v | Vertical tab |