You are on page 1of 36

Perl Scripting

M. Varadharajan
Thiagarajar College of Engineering
What We Will Cover?
 What is Perl?
 Creating and Executing Perl scripts
 Standard Input and Output
 Scalar Variables
 Arrays
 Hashes
 Magic Variables: $_ and @ARGV
What We Will Cover?
 Control Structures
 Looping Structures
 File Operations
 Split & Join
 Using shell commands
 Advanced Concepts you'll need to know
What is Perl
 Perl stands for
− 'Practical Extraction and Reporting Language'
 Developed by Larry Wall in 1987
 Its called Perl and not PERL
 High level Scripting Language
 Dynamically Typed
 Support for object oriented programming
Some Advantages of Perl
 Free and Open source
 Fast, Flexible, Secure and Fun
 Interpreted Language
 Mature Community
 Portability
 Very good Documentation (POD)
 Availability of Modules (CPAN)
Typical Uses of Perl
 Text processing
 System administration tasks
 CGI and web programming
 Database interaction
 Other Internet programming
Hello World!
 This script will print 'Hello World!'
 Creation of the Perl Script:
− Open your Text Editor (!MSWORD)
− Type the following block & save

#!/usr/bin/perl -w
print “Hello World! \n”;
Hello World!
 Some point to Note:
− All Perl statements end with ';'
− Add 'use strict;' if you're serious on the
script
− Comments in Perl start with '#'
− The first line is known as Shebang line
#!/usr/bin/perl -w
Hello World!
 Executing the script:
− Call the interpreter with the script
perl helloworld.pl

or

− Grant Executable Permissions & Execute


Chmod a+x helloworld.pl
./helloworld.pl
Scalar Variables
 Place to store a single item of data
 Scalar variables begin with '$'
 Declaration is as follows (in strict mode)
my $name;
 Assigning values is similar to c
$name = “varadharajan”;
$total = 100;
$cost = 34.34
Standard Output
 Print function is used
 Syntax:
print “some string”;

 Example: (script prints “Perl is cool”)


#/usr/bin/perl -w
my $name = “perl”;
print “$name is cool \n”;
Standard Input
 Special operator '<>' is used
 Synatx:
$scalar = <STDIN>;
 Example: (Get name and print it)
#/usr/bin/perl -w
print “Enter Name : ”;
my $name = <STDIN>;
print “Hello $name”;
String Operations
 Chomp:
chomp($name);
#removes the trailing new line
 Concatenation:
my $name = “Varadharajan ” . “Mukundan”;
 Multiplication:
$name = “hello ” x 3;
#Assigns “hello hello hello” to name
Arrays
 Set of Scalar variables
 Arrays start with '@'
 Declaring Arrays:
− Syntax:
my @array_name=(value1,value2);
− Example:
my @list = ('varadharajan',99,'cool');
Arrays
 Accessing individual elements:
− Syntax:
$array_name[index];
#index starts with 0

− Example:
print $list[1]; #prints 10
Array Slices
 Access a set of continuous elements in an
array.
− Syntax:
@array_name[start_index .. end_index];
− Example:
print @list[ 0 .. 2 ];
# Prints $list[0], $list[1], $list[2]
Hashes
 “Key – value ” Data Structure.
 Keys present in a hash must be unique
 Value may be same for multiple keys
 Also commonly known as dictionaries
Hashes
 Initializing a Hash:
− Syntax:
my %hash_name = ( key => 'value');
− Example:
my %students = (
name => 'varadharajan',
age => 1
);
Hashes
 Accessing a Hash
− Syntax:
$hash_name{key_name};
− Example:
print $student{name};
#prints varadharajan
print $student{age};
#prints 18
Hash Slices
 Just like array slices
 Syntax:
@hash_name{'key1','key2'};
 Example:
print @student{'name','age'};
Magic Variable: $_
 Default variable for storing values, if no
variables are manually specified.
 Example:
my @list = (1,2,4,34,5,223);
foreach (@list)
{
print;
}
# prints the entire list
Magic Variable: @ARGV
 This Array is used to store the command
line arguments
 Example
print $ARGV[0];
# when this script is executed like this
# perl test1.pl text
# it prints “text”
Conditional control Structures
 IF – ELSIF – ELSE statement:
− Syntax:
if (EXPR) {BLOCK}
elsif (EXPR) {BLOCK}
else {BLOCK}
− Example:
if($age==18) {print “Eighteen”;}
elsif($age==19) {print “Nineteen”}
else {print $age;}
Looping Structures
 While:
$i = 0;
while ($i < 10)
{
print $i;
$i++;
}
# Prints 0123456789
Looping Structures
 For:
for($i=0;$i<10;$i++)
{
print $i;
}
# prints 0123456789
Looping Structures
 Foreach:
my @list = (“varadha”,19);
foreach $value (@list)
{
print $value;
}
# prints the list
File Operations
 Opening a File:
− Syntax:
open(FILE_HANDLE , “[< |> |>>]File_Name”);
− Example:
open(MYFILE, “<myfile.txt”);
− Available Modes:
< - Read Mode
> - Write Mode
>> - Append Mode
File Operations
 Reading from a File:
− Syntax:
@array_name = <FILE_HANDLE>;
− Example:
@data = <MYFILE>;
# Now @data contains the data presents in
# File whose file handle is MYFILE
File Operations
 Writing to a File:
− Syntax:
print FILE_HANDLE “Text”;
− Example:
print MYFILE “This is the content”;
File Operations
 Closing a File:
− Syntax:
close(FILE_HANDLE);
− Example:
close(MYFILE);
Split Function
 Splits a scalar variable into arrays
− Syntax:
@array = split(PATTERN,EXPR);
− Example:
@words = split(/ /,$sentence);
Join Function
 Used to join all elements in an array to
form a scalar
− Syntax:
$string = join(Joining_element,@arrays);
− Example:
$sentence = join(' ',@words);
Executing Shell Commands
 Makes us executed Shell commands from
a Perl script
− Syntax:
system(command);
− Example:
$ls_data = system(“ls”);
Advanced Concepts
 Subroutines
 Global and Local variables
 Regular Expressions
 OO programming
 CPAN
Perl Resources
 Perl POD
 Learning Perl from o'reilly
 Programming Perl from o'reilly
 Perl Beginners Mailing list at
http://www.nntp.perl.org/group/perl.beginn
ers/
That's All Folks
 Ping me at srinathsmn@gmail.com

Thank You

You might also like