PERL

From Script | Spoken-Tutorial
Revision as of 21:34, 12 February 2013 by AmolBrahmankar (Talk | contribs)

Jump to: navigation, search

Introduction to Perl

Perl (Practical Extraction & Reporting Language) is widely used open-source language. It was originally developed by Larry Wall in 1987 as a general-purpose Unix scripting language to make report processing easier. Since then, it has undergone many changes and revisions and become widely popular amongst programmers. Larry Wall continues to work on development of the core language, and its upcoming version, Perl 6. Perl borrows features from other programming languages including C, shell scripting (sh), AWK, and sed. The language provides powerful text processing facilities, facilitating easy manipulation of text files. Perl gained widespread popularity in the late 1990s as a CGI scripting language, in part due to its parsing abilities.

Perl can be used as a very simple and easy to use programming language. This language helps programmer to write a simple piece of code against the heavy / complicated shell or C programming. This language is portable and reliable. Useful for applications requiring Pattern Matching extensively

Basic Level

Installation of Perl
  1. Installation of Perl 5.14.2 on Ubuntu Linux
    • Installing XAMPP in Linux
    (XAMPP is a cumulative package consisting of Apache, PERL, PHP and MySQL Packages is available for Linux)
    • Default Webserver directory will be set to "opt"
    OR
    • Using default Perl installation available in Synaptic Package Manager
  2. Installation of Perl 5.14.2 on Windows
    • Installing XAMPP in Windows
    (XAMPP is a cumulative package consisting of Apache, PERL, PHP and MySQL Packages is available for Windows)
    • Default Webserver directory will be set to "htdocs"

    Topics
  3. Variables in Perl
    • Variables are used for storing values, like text strings, numbers or arrays
    • All variables in PERL start with a $ sign symbol
    • Declaring a variable in PERL: $var_name = value;
    • e.g:
      • $count = 1;
      • $stringVar = ‘My Name is PERL’;
  4. Comments in Perl
    • Two types of comments -
      • Single Line
      • Multi Line
    • Single Line comment starts with the symbol #
    • Multi Line comment used to comment a chunk of code
      • =cut =head or =begin =end
      • Start with = sign

    Loops in Perl
  5. for-foreach-Loop
    • for Loop
      • for loop is used to execute a piece of code for certain number of times
      • Syntax:
        for (initialization;condition;increment)
        {
        Piece of code to be executed multiple times
        }
      • eg:
        for ($i=0; $i<=4; $i++)
        {
        print “Value of i: $i\n”;
        }
    • for-each Loop
      • for-each loop is used to iterate a condition over an array
      • Syntax:
        foreach $variable (@array)
        {
        Perform action on each element of array
        }
      • eg:
        @myarray = (10, 20, 30);
        foreach $var (@myarray)
        {
        print “Element of array is: $var \n”;
        }
  6. while-do-while Loops
    • while Loop
      • while loop executes a block of code while a condition is true.
      • Syntax:
        while (condition)
        {
        Piece of code to be executed only while the condition is true
        }
      • eg:
        $i = 0;
        while ($i<=4)
        {
        print “Value of i: $i\n”;
        $i++;
        }
    • do-while Loop
      • do-while loop will always execute the piece of code at-least once
      • It will then check the condition and repeat the loop while the condition is true
      • Syntax:
        do
        {
        Piece of code to be executed while the condition is true
        }do (while);
      • eg:
        $i = 0;
        do
        {
        print “Value of i: $i\n”;
        $i++;
        }while ($i<=4);

    Conditional Statements
  7. if-if-else Statements
    • if Statement
      • if statement is used to execute piece of code only if a specified condition is satisfied.
      • Syntax:
        if (condition)
        {
        Piece of code to be executed;
        }
      • eg:
    • if-else Statement
      • if-else statement is used to execute piece of code if a condition is satisfied or another code if the condition is false.
      • Syntax:
        if (condition)
        {
        Piece of code to be executed;
        }else {
        Another piece of code;<br> # if the above if condition evaluates to false, this another piece of code will be executed
        }
      • eg:
  8. if-elsif-else-switch Statements
    • if-elsif-else Statement
      • if-elsif-else statement is used to select one of several blocks of code to be executed.
      • Syntax:
        if (condition)
        {
        Piece of code to be executed;
        }elsif (other condition) {
        Another piece of code;<br> # if the above if condition evaluates to false, this another piece of code will be executed
        }else{
        #piece of code to be executed if both the above conditions are false.
        }
      • eg:
    • switch Statement
      • switch statement is used to select one of many blocks of code to be executed.
      • There were no Switch/Case in perl prior to 5.8 version.
      • After 5.8 PERL provided Switch module.
      • Syntax:
        use switch;
        $variable;
        switch ($variable){
        case(1) { ....}
        case(2) { ....}
        case(3) { ....}
        else { ....}
        }
      • eg:
        use switch;
        $var = 2;
        switch ($var){
        case(1) { $i = “One”}
        case(2) { $i = “Two”}
        case(3) { $i = “Three”}
        else { $i = “Other”}
        }
        $i will become 2
  9. Data Structures in Perl
    • Scalar
      • These are the basic variables in PERL.
      • It can hold any kind of type viz. string, number etc.
      • eg: $variable = 9;
        $variable = ‘This is string type of variable’;
    • Array
      • Array in PERL is ordered collection of data.
      • It can hold data of any type.
      • Array index starts from zero.
      • eg: @array = (1, 5, 6, ‘abc’, 7);
    • Associative Array or Hash
      • Associative array or Hash in PERL is un-ordered collection of data.
      • It is a key value pair.
      • Key cannot be duplicate in hash whereas value can be.
      • eg:
        %hash = (
        ‘Name’ => ‘John’,
        ‘Department’ => ‘Finance’
        );
  10. More on Arrays
    • Getting Last index of array
      • eg:
        @array = (1, 5, 6, ‘abc’, 7);
        print “Last index of an array is: $#array”;
        # prints… Last index of an array is: 4
    • Getting length of an array
      • To get the length, add 1 to last index of an array
      • eg: print “Length of an array is: ”, $#array+1;
        # prints.. Length of an array is: 5
      • Other way is use scalar function on array or assign array to a scalar variable.
      • eg:
        scalar (@array);
        $length = @array;
    • Accessing element of an array
      • eg:
        @array = (1, 5, 6, ‘abc’, 7);
        # print the 4th element of an arrayprint $array[3];
      • prints…. “abc”
    • Looping over an array
      • There are two ways to loop over an array
        • Using for loop
        • eg:
          @array = (1, 5, 6, ‘abc’, 7);
          for ($i=0; $i<$#array; $i++) {
          print $array[$i];
          }
        • Using for-each loop
        • eg:
          @array = (1, 5, 6, ‘abc’, 7);
          foreach $var (@array) {
          print $var;
          }
  11. Basic array functions
    • push
      • Add element at the end of an array
    • pop
      • Remove element from the end of an array
    • unshift
      • Add element at the start of an array
    • shift
      • Remove element of an array from the start.
    • split
      • This function splits the string and makes an array of it.
      • eg:
        $var = ‘Hello World’
        @array = split (/ /, $var);
        $var will get split on space and @array will contain 2 elements Hello World
    • qw
      • qw stands for “Quoted word”
      • It returns a list of word separated by white spaces.
      • eg:
        @array = qw (Hello world) this is equivalent to @array = (‘Hello’, ‘World’);
    • sort
      • sorts the array in alphabatical order.
  12. More on Hash
    • Accessing element of a hash
      • Syntax:
        %hash = (
        ‘Name’ => ‘John’,
        ‘Department’ => ‘Finance’
        );
        print $hash{Name};
        #prints… John
    • Basic hash functions
      • keys
        • Returns keys of a hash
      • values
        • Returns values of a hash
      • each
        • Retrieve the next key/value pair from a hash
    • Looping over a hash
      • Syntax:
        foreach ($key = (keys %hash)) {
        print $hash{$key};
        }
        OR
        foreach (($key, $value) = each (%hash)) {{
        print “Key: $key & value: $value”;{
        }{
  13. Functions in Perl
    • Simple function
      • Syntax:
        sub sample_func {
        #piece of code
        }
    • Function with parameters
      • Syntax:
        sub func_with_parameters {
        ($variable) = @_;
        # @_ contains the arguments passed to function.
        #This is a special PERL variable.
        }
    • Function which return single value
      • Syntax:
        sub return_single_value {
        #piece of code


        return $variable;
        }
    • Function which returns multiple values
      • Syntax:
        sub return_multiple_value {
        #piece of code
        return ($variable1, $variable2);
        }
  14. Blocks in Perl
    • Begin
      • This block executes at the compilation time once it is defined.
      • Anything which needs to be included before execution of the rest of the code is written here.
      • Syntax:
        begin {
        #piece of code to be executed at the start
        }
    • End
      • This block executes at the end.
      • Anything which needs to be executed at last is written here.
      • Syntax:
        end {
        #piece of code to be executed at the end
        }

Intermediate level

Topics
  1. Access Modifiers in PERL
    • my
      • this is kind of private variable.
      • scope is in the block inside where it is declared.
    • local
      • this kind of variables are lexically scoped variables
      • that means they get the temporary value inside the block where it is used
      • as soon as block ends it gets the earlier value.
      • ie, 'local' temporarily changes the value of the variable, but only within the scope it exists.
    • our
      • this is kind of global variables in perl
      • can be accessed without giving package name while accessing it in another package.
      • e.g:
        package first;
        our $varInFirst = 10;
        package second;
        print $varInFirst; # prints 10
  2. Referencing & Dereferencing in Perl
    • Referencing
      • In perl we can create a reference by adding \ (backward slash) to it.
      • eg:
        $variable = 10;
        $variableRef = \$variable;
        @array = (1, 2 , 3);
        $arrayRef = \@array;
        %hash = (
        ‘Emp Id’ => 1000,
        ‘Name’ => ‘Peter’
        );
        $hashRef = \%hash;
      • Note: Reference in perl is nothing but a perl scalar variable holding address of the entity being referred.
    • De-referencing
      • Dereferencing is the mean by which we can get the actual entity being referred by reference.
      • It is done by putting appropriate identifier in front of the reference variable.
      • eg:
        $scalar = $$scalarRef;
        @array = @$arrayRef;
        %hash = %$hashRef;
  3. Special Variables in PERL
    • These variables in perl have some special meaning.
  4. Sample Perl Programs
  5. Exception and error handling in PERL
    • eval block in perl
      • User can use eval, if he wants to execute a piece of code even if there is a error / exception
      • or to know exactly where the code is failing with the type of error.
      • eg:
        eval {
        my $var = 10;
        my $result = $var / 0;
        };

        if ($@) {
        die “Error: $!”;
        # This will terminate the execution of the program.
        If user wants to ignore this and just want to know the error use print instead of die.
        }
  6. File Handling#* open a file
    • open a file in read mode
    • open a file in read, write mode
    • open a file in append mode
    • write into a file
    • close the file handle
  7. Including files and/or modules in a PERL program
    • do
    • require
    • use
  8. Perl Modules
  9. PERL Module library
    • CPAN
  10. Adding path to a default list of paths for a module
    • @INC
  11. Downloading required module onto windows or linux
    • Downloading CPAN module
      • WindowsLinux
  12. PERL & HTML
    • CGI module

Advanced level

Topics
  1. Function Prototyping
  2. Date & Time
    • Current Time Stamp
    • Various Date formats
    • Various operations that can be performed on date
  3. Oops in Perl
    • Object creation
    • Constructor
    • Destructor
    • Accessing methods using an object
    • Inheritance in Per
  4. Exporting functions in Perl
    • EXPORT
    • EXPORT_OK
  5. Pattern Matching / Regular expression in Perl
    • Basics of pattern matching
    • Syntax
    • Modifiers
  6. Database handling
    • DBI module
  7. Multithreading
    • threads module
  8. Socket Programming
    • use IO::Socket::INET
  9. General information
    • Getting Perl version
    • Perl installation path
    • Information about the
      • module
      • it’s location
      • from where it is included in your perl script

Contributors and Content Editors

AmolBrahmankar, Nancyvarkey, Nirmala Venkat, PoojaMoolya