Presentation is loading. Please wait.

Presentation is loading. Please wait.

PERL By C. Shing ITEC Dept Radford University. Objectives Understand the history Understand constants and variables Understand operators Understand control.

Similar presentations


Presentation on theme: "PERL By C. Shing ITEC Dept Radford University. Objectives Understand the history Understand constants and variables Understand operators Understand control."— Presentation transcript:

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


Download ppt "PERL By C. Shing ITEC Dept Radford University. Objectives Understand the history Understand constants and variables Understand operators Understand control."

Similar presentations


Ads by Google