Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Perl Scripting

My presentation for GTUG Summer Camp 2010,Madurai on "Introduction to Perl"

  • Login to see the comments

Perl Scripting

  1. 1. Perl Scripting M. Varadharajan Thiagarajar College of Engineering
  2. 2. What We Will Cover?  What is Perl?  Creating and Executing Perl scripts  Standard Input and Output  Scalar Variables  Arrays  Hashes  Magic Variables: $_ and @ARGV
  3. 3. What We Will Cover?  Control Structures  Looping Structures  File Operations  Split & Join  Using shell commands  Advanced Concepts you'll need to know
  4. 4. 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
  5. 5. 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)
  6. 6. Typical Uses of Perl  Text processing  System administration tasks  CGI and web programming  Database interaction  Other Internet programming
  7. 7. 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”;
  8. 8. 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
  9. 9. 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
  10. 10. 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
  11. 11. 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”;
  12. 12. 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”;
  13. 13. 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
  14. 14. Arrays  Set of Scalar variables  Arrays start with '@'  Declaring Arrays: − Syntax: my @array_name=(value1,value2); − Example: my @list = ('varadharajan',99,'cool');
  15. 15. Arrays  Accessing individual elements: − Syntax: $array_name[index]; #index starts with 0 − Example: print $list[1]; #prints 10
  16. 16. 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]
  17. 17. 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
  18. 18. Hashes  Initializing a Hash: − Syntax: my %hash_name = ( key => 'value'); − Example: my %students = ( name => 'varadharajan', age => 1 );
  19. 19. Hashes  Accessing a Hash − Syntax: $hash_name{key_name}; − Example: print $student{name}; #prints varadharajan print $student{age}; #prints 18
  20. 20. Hash Slices  Just like array slices  Syntax: @hash_name{'key1','key2'};  Example: print @student{'name','age'};
  21. 21. 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
  22. 22. 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”
  23. 23. 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;}
  24. 24. Looping Structures  While: $i = 0; while ($i < 10) { print $i; $i++; } # Prints 0123456789
  25. 25. Looping Structures  For: for($i=0;$i<10;$i++) { print $i; } # prints 0123456789
  26. 26. Looping Structures  Foreach: my @list = (“varadha”,19); foreach $value (@list) { print $value; } # prints the list
  27. 27. File Operations  Opening a File: − Syntax: open(FILE_HANDLE , “[< |> |>>]File_Name”); − Example: open(MYFILE, “<myfile.txt”); − Available Modes: < - Read Mode > - Write Mode >> - Append Mode
  28. 28. 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
  29. 29. File Operations  Writing to a File: − Syntax: print FILE_HANDLE “Text”; − Example: print MYFILE “This is the content”;
  30. 30. File Operations  Closing a File: − Syntax: close(FILE_HANDLE); − Example: close(MYFILE);
  31. 31. Split Function  Splits a scalar variable into arrays − Syntax: @array = split(PATTERN,EXPR); − Example: @words = split(/ /,$sentence);
  32. 32. Join Function  Used to join all elements in an array to form a scalar − Syntax: $string = join(Joining_element,@arrays); − Example: $sentence = join(' ',@words);
  33. 33. Executing Shell Commands  Makes us executed Shell commands from a Perl script − Syntax: system(command); − Example: $ls_data = system(“ls”);
  34. 34. Advanced Concepts  Subroutines  Global and Local variables  Regular Expressions  OO programming  CPAN
  35. 35. 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/
  36. 36. That's All Folks  Ping me at srinathsmn@gmail.com Thank You

×