View
6.880
Download
3
Category
Tags:
Preview:
DESCRIPTION
My presentation for GTUG Summer Camp 2010,Madurai on "Introduction to Perl"
Citation preview
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
Exampleprint $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.beginners/
Recommended