Download as pdf or txt
Download as pdf or txt
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