Download presentation
Presentation is loading. Please wait.
Published byLily Dawson Modified over 9 years ago
1
PERL By C. Shing ITEC Dept Radford University
2
Objectives Understand the history Understand constants and variables Understand operators Understand control structures Understand functions Understand file I/O Understand command line arguments Understand how to use Perl for system administration
3
History Perl (Practical Extraction Report Language) by Larry Wall (1986) Language between C and shell: Scripting, need interpreter Provide File access and Unix utilities Download site: http://www.perl.comhttp://www.perl.com –File extension (.pl) –Interpret with error message: perl -w filename.pl arg0 arg1 … Artistic license: variation of GNU public license, free
4
Constants Scalar: –Number: integer, real, scientific notation –String: within “ “ Boolean: –1 represents true –0 represents false
5
Variables Scalar: begin with $ –Number: integer, real –String: string, character Array: begin with @ –Index starts from 0 Associative: begin with % –use hash
6
Control Structures Print Assignment Conditional Loop Function (Subroutine)
7
Control Structures - Print Syntax: each statement ends with ; Print variable [constant]; –Example: print "Please enter a number:";
8
Control Structures - Assignment Syntax: each statement ends with ; Variable = expression Comment: begins with #
9
Control Structures - Assignment Scalar Variable Number: integer, real –Example: $i=5 $j=-6.2 String: string, character –Example: $month=“January” $char=“\t”
10
Control Structures - Assignment Scalar Variable Number: integer, real –Example: $i=5; $j=-6.2; $number = ; (keyboard input) String: string, character –Example: $month=“January”; $char=“\t”; $guess = ; (keyboard input) $fileString = (getting data from file)
11
Control Structures - Assignment Array Variable –Example: @array = ("john", "susan", "david", "sarah", "ryan", "laura"); @numRange = (1..6); Where $array[0] = “john”; $array[1] = “susan”; $array[5] = “laura”;
12
Control Structures - Assignment Associative Variable –Example: %hash = ("smith"=>"john", "sides"=> "susan", "davis"=>"david", "star"=>"sarah", "rush"=>"ryan","lane"=> "laura"); Where $array{“smith”} = “john”; $array{“sides”} = “susan”; $array{“lane”} = “laura”;
13
Operators – Arithmetic, Logic, Relational Arithmetic: +,-,*,/ Logical: &&, || Relational –Numeric: ==, !=, >, >=, <, <= –String: eq, ne, gt, ge, lt, le
14
Operators - String String –Concatenation:. Example: –$month = $month.$char; –$message = "This is a number ".”\t”.$number. "\n"; –Match: =~ Example; $line =~ s/the/THE/g; (replace all the by THE in the $line) $line =~ /(\w+)(\s+)(\w+)(\s+)/; (line that matches the pattern: word, spaces, word
15
Control Structures - Conditional Syntax 1.If (condition) { } 2.If (condition) { } else { } 3.If (condition1) { } elsif (condition2) { } else { }
16
Control Structures - Conditional Example: if ($guess eq "hello") { print "The word ".$guess." that you guessed is correct.\n\n"; }
17
Control Structures - Conditional Example: if ($avg >=0.895*$avgall) { $grade="A"; } elsif ($avg >=0.795*$avgall) { $grade="B"; } elsif ($avg >=0.695*$avgall) { $grade="C"; } elsif ($avg >=0.595*$avgall) { $grade="D"; } else { $grade="F"; }
18
Control Structures - Loop 1.While 2.Until 3.Foreach 4.For
19
Control Structures – While Loop Syntax while (condition) { } when condition is false, exit loop
20
Control Structures – While Loop while ($line= ) { }
21
Control Structures – Until Loop Syntax until (condition) { } when condition is true, exit loop
22
Control Structures – Until Loop Example: until ($array2[0] eq "listing") { }
23
Control Structures – Foreach Loop Syntax foreach variable (variableRange) { } when variable is outside of variableRange, exit loop
24
Control Structures – Foreach Loop Example: foreach $month (1..12) { }
25
Control Structures – For Loop Syntax for (initialization; condition; ending body stmt) { } when condition is false, exit loop
26
Control Structures – For Loop Example: for ($i=1; $i<=12; ++$i) { }
27
Control Structures - Function (Subroutine) 1.Library function 2.User (-defined) function
28
Control Structures – Library Function 1.lc() or lc : convert to lower case 2.uc(): convert to upper case 3.open(), close(), die(), exit(), last(): See File I/O 4.print() 5.length(): length of string 6.index()
29
Control Structures – Library Function Example: # search item through list foreach $user (@list) { if ($user eq lc($item)) { $user_correct = 1; } } # foreach
30
Control Structures – Library Function 7.keys(): gives the key value of the hash 8.chomp(): delete the new line character from variable 9.split (delimiter, variable) : split a variable using delimiter 10.my(): create local variable 11.shift (arrayName): get rid of 1 st element in the arrayName 12.push (array1, array2): push array2 to the end of array1
31
Control Structures – Library Function Example: while ($line= ) { chomp($line); # username are separated by space(s) @array=split /\s+/, $line; }
32
Control Structures – Library Function Example: foreach $userkey (keys %hash) { if ($hash{$userkey} eq lc($name)) { $user_correct = 1; $lastname=$userkey; } } # foreach
33
Control Structures – User Function Function call: –Syntax: functionname (actualParameterList); –Example: check ($name, @array);
34
Control Structures – User Function Function definition: –Syntax: sub functionname { my $localVar1 = $_[0]; my $localVar2 = $_[1]; my @localArray = @_; }
35
Control Structures – User Function Function definition: –Example: check ($name, @array); sub check { # the following 3 lines declare local variables my $item = $_[0]; my @list = @_; my $user_correct = 0; }
36
Control Structures – User Function Example: printArray(@array); sub printArray { # @array is a local variable in the sub my @array = @_; foreach $cell (@array) { print $cell."\t"; } print "\n"; } # sub printArray
37
File I/O Open/Close file: –Syntax: open (FILEHANDLE, “<filename”); close (FILEHANDLE);
38
File I/O Open/Close file: –Example: # read all names into @array from input data file: sixth2.txt open (NAMEFILE, "<sixth2.txt") || die "Error: Unable to open the file $!"; # open output file for print open (OUTFILE,">attend.txt"); print OUTFILE "Lastname\t\tFirstname\t\tE-Mail Name\n";
39
Command Line Arguments perl –w filename.pl arg0 arg1 arg2 … Arg0, arg1 and arg2… are command line arguments Inside the program, they are stored in array @ARGV
40
Command Line Arguments Example: open (USERFILE, "<user$ARGV[0].txt") || die "Error: Unable to open the file $!"; open (OUTFILE,">attend$ARGV[0].txt"); print OUTFILE "Library Attendance for ITEC 100-$ARGV[0]\n\n";
41
System Administration Call system library when using shell commands in Perl Give full path name for shell commands –Use which command to find full path name Watch for reserved names in Perl
42
System Administration Example: Run Perl in Unix environment –system("/usr/local/gnu/bin/awk '{print \$1,\$2,\$9}' temp1.txt > temp2.txt"); –system("/usr/bin/rm -f temp2.txt"); If you run Perl in Unix, make sure to change data into Unix format, such as: –system("/usr/bin/dos2unix session.txt session.txt");
43
Reference Some simple examples
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.