SlideShare uma empresa Scribd logo
1 de 36
Baixar para ler offline
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
   Example
             print $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.beginn
       ers/
That's All Folks
   Ping me at srinathsmn@gmail.com



                 Thank You

Mais conteúdo relacionado

Mais procurados

Intermediate code generation in Compiler Design
Intermediate code generation in Compiler DesignIntermediate code generation in Compiler Design
Intermediate code generation in Compiler DesignKuppusamy P
 
Union in C programming
Union in C programmingUnion in C programming
Union in C programmingKamal Acharya
 
Python-01| Fundamentals
Python-01| FundamentalsPython-01| Fundamentals
Python-01| FundamentalsMohd Sajjad
 
Array,lists and hashes in perl
Array,lists and hashes in perlArray,lists and hashes in perl
Array,lists and hashes in perlsana mateen
 
Perl 101 - The Basics of Perl Programming
Perl  101 - The Basics of Perl ProgrammingPerl  101 - The Basics of Perl Programming
Perl 101 - The Basics of Perl ProgrammingUtkarsh Sengar
 
Inheritance in java
Inheritance in javaInheritance in java
Inheritance in javaTech_MX
 
Cryptanalysis
CryptanalysisCryptanalysis
CryptanalysisSou Jana
 
Intermediate code generator
Intermediate code generatorIntermediate code generator
Intermediate code generatorsanchi29
 
Inheritance in java
Inheritance in java Inheritance in java
Inheritance in java yash jain
 
Java basics and java variables
Java basics and java variablesJava basics and java variables
Java basics and java variablesPushpendra Tyagi
 

Mais procurados (20)

Intermediate code generation in Compiler Design
Intermediate code generation in Compiler DesignIntermediate code generation in Compiler Design
Intermediate code generation in Compiler Design
 
Programming in c Arrays
Programming in c ArraysProgramming in c Arrays
Programming in c Arrays
 
Java(Polymorphism)
Java(Polymorphism)Java(Polymorphism)
Java(Polymorphism)
 
Generics
GenericsGenerics
Generics
 
Unit 3. Input and Output
Unit 3. Input and OutputUnit 3. Input and Output
Unit 3. Input and Output
 
Union in C programming
Union in C programmingUnion in C programming
Union in C programming
 
Python Functions
Python   FunctionsPython   Functions
Python Functions
 
Python-01| Fundamentals
Python-01| FundamentalsPython-01| Fundamentals
Python-01| Fundamentals
 
Break and continue
Break and continueBreak and continue
Break and continue
 
Array,lists and hashes in perl
Array,lists and hashes in perlArray,lists and hashes in perl
Array,lists and hashes in perl
 
Python-Encapsulation.pptx
Python-Encapsulation.pptxPython-Encapsulation.pptx
Python-Encapsulation.pptx
 
Perl 101 - The Basics of Perl Programming
Perl  101 - The Basics of Perl ProgrammingPerl  101 - The Basics of Perl Programming
Perl 101 - The Basics of Perl Programming
 
Inheritance in java
Inheritance in javaInheritance in java
Inheritance in java
 
Cryptanalysis
CryptanalysisCryptanalysis
Cryptanalysis
 
Intermediate code generator
Intermediate code generatorIntermediate code generator
Intermediate code generator
 
Inheritance in java
Inheritance in java Inheritance in java
Inheritance in java
 
Python - object oriented
Python - object orientedPython - object oriented
Python - object oriented
 
Perl tutorial
Perl tutorialPerl tutorial
Perl tutorial
 
Java basics and java variables
Java basics and java variablesJava basics and java variables
Java basics and java variables
 
Constructor ppt
Constructor pptConstructor ppt
Constructor ppt
 

Destaque

Introduction to Perl - Day 1
Introduction to Perl - Day 1Introduction to Perl - Day 1
Introduction to Perl - Day 1Dave Cross
 
Perl programming language
Perl programming languagePerl programming language
Perl programming languageElie Obeid
 
LPW: Beginners Perl
LPW: Beginners PerlLPW: Beginners Perl
LPW: Beginners PerlDave Cross
 
Introduction to Perl - Day 2
Introduction to Perl - Day 2Introduction to Perl - Day 2
Introduction to Perl - Day 2Dave Cross
 
Perl hosting for beginners - Cluj.pm March 2013
Perl hosting for beginners - Cluj.pm March 2013Perl hosting for beginners - Cluj.pm March 2013
Perl hosting for beginners - Cluj.pm March 2013Arpad Szasz
 
Introduction to Web Programming with Perl
Introduction to Web Programming with PerlIntroduction to Web Programming with Perl
Introduction to Web Programming with PerlDave Cross
 
Database Programming with Perl and DBIx::Class
Database Programming with Perl and DBIx::ClassDatabase Programming with Perl and DBIx::Class
Database Programming with Perl and DBIx::ClassDave Cross
 
Lect 1. introduction to programming languages
Lect 1. introduction to programming languagesLect 1. introduction to programming languages
Lect 1. introduction to programming languagesVarun Garg
 
Linux.ppt
Linux.ppt Linux.ppt
Linux.ppt onu9
 
Introduction to Python
Introduction to PythonIntroduction to Python
Introduction to PythonNowell Strite
 
Perl University: Getting Started with Perl
Perl University: Getting Started with PerlPerl University: Getting Started with Perl
Perl University: Getting Started with Perlbrian d foy
 
Perl Introduction (OLD - NEARLY OBSOLETE)
Perl Introduction (OLD - NEARLY OBSOLETE)Perl Introduction (OLD - NEARLY OBSOLETE)
Perl Introduction (OLD - NEARLY OBSOLETE)Adam Trickett
 
Web Development in Perl
Web Development in PerlWeb Development in Perl
Web Development in PerlNaveen Gupta
 
Mojolicious. The web in a box!
Mojolicious. The web in a box!Mojolicious. The web in a box!
Mojolicious. The web in a box!Anatoly Sharifulin
 
Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Masahiro Nagano
 
Modern Web Development with Perl
Modern Web Development with PerlModern Web Development with Perl
Modern Web Development with PerlDave Cross
 
Modern Web Development with Perl
Modern Web Development with PerlModern Web Development with Perl
Modern Web Development with PerlDave Cross
 

Destaque (20)

Introduction to Perl - Day 1
Introduction to Perl - Day 1Introduction to Perl - Day 1
Introduction to Perl - Day 1
 
Perl programming language
Perl programming languagePerl programming language
Perl programming language
 
LPW: Beginners Perl
LPW: Beginners PerlLPW: Beginners Perl
LPW: Beginners Perl
 
Introduction to Perl - Day 2
Introduction to Perl - Day 2Introduction to Perl - Day 2
Introduction to Perl - Day 2
 
Perl hosting for beginners - Cluj.pm March 2013
Perl hosting for beginners - Cluj.pm March 2013Perl hosting for beginners - Cluj.pm March 2013
Perl hosting for beginners - Cluj.pm March 2013
 
Introduction to Web Programming with Perl
Introduction to Web Programming with PerlIntroduction to Web Programming with Perl
Introduction to Web Programming with Perl
 
Database Programming with Perl and DBIx::Class
Database Programming with Perl and DBIx::ClassDatabase Programming with Perl and DBIx::Class
Database Programming with Perl and DBIx::Class
 
Lect 1. introduction to programming languages
Lect 1. introduction to programming languagesLect 1. introduction to programming languages
Lect 1. introduction to programming languages
 
Linux.ppt
Linux.ppt Linux.ppt
Linux.ppt
 
Introduction to Python
Introduction to PythonIntroduction to Python
Introduction to Python
 
Perl University: Getting Started with Perl
Perl University: Getting Started with PerlPerl University: Getting Started with Perl
Perl University: Getting Started with Perl
 
Questionnaire Analysis
Questionnaire AnalysisQuestionnaire Analysis
Questionnaire Analysis
 
Perl Introduction (OLD - NEARLY OBSOLETE)
Perl Introduction (OLD - NEARLY OBSOLETE)Perl Introduction (OLD - NEARLY OBSOLETE)
Perl Introduction (OLD - NEARLY OBSOLETE)
 
Ascii codes 3145_app_f
Ascii codes 3145_app_fAscii codes 3145_app_f
Ascii codes 3145_app_f
 
DBI
DBIDBI
DBI
 
Web Development in Perl
Web Development in PerlWeb Development in Perl
Web Development in Perl
 
Mojolicious. The web in a box!
Mojolicious. The web in a box!Mojolicious. The web in a box!
Mojolicious. The web in a box!
 
Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14
 
Modern Web Development with Perl
Modern Web Development with PerlModern Web Development with Perl
Modern Web Development with Perl
 
Modern Web Development with Perl
Modern Web Development with PerlModern Web Development with Perl
Modern Web Development with Perl
 

Semelhante a Perl Scripting (20)

Perl Basics for Pentesters Part 1
Perl Basics for Pentesters Part 1Perl Basics for Pentesters Part 1
Perl Basics for Pentesters Part 1
 
Introduction to Perl
Introduction to PerlIntroduction to Perl
Introduction to Perl
 
Lecture19-20
Lecture19-20Lecture19-20
Lecture19-20
 
Lecture19-20
Lecture19-20Lecture19-20
Lecture19-20
 
Lecture 22
Lecture 22Lecture 22
Lecture 22
 
Introduction to perl_lists
Introduction to perl_listsIntroduction to perl_lists
Introduction to perl_lists
 
Training on php by cyber security infotech (csi)
Training on  php by cyber security infotech (csi)Training on  php by cyber security infotech (csi)
Training on php by cyber security infotech (csi)
 
Subroutines
SubroutinesSubroutines
Subroutines
 
Perl
PerlPerl
Perl
 
Dades i operadors
Dades i operadorsDades i operadors
Dades i operadors
 
My shell
My shellMy shell
My shell
 
Bash Shell Scripting
Bash Shell ScriptingBash Shell Scripting
Bash Shell Scripting
 
SHELL PROGRAMMING
SHELL PROGRAMMINGSHELL PROGRAMMING
SHELL PROGRAMMING
 
Practical approach to perl day1
Practical approach to perl day1Practical approach to perl day1
Practical approach to perl day1
 
Marc’s (bio)perl course
Marc’s (bio)perl courseMarc’s (bio)perl course
Marc’s (bio)perl course
 
Perl bhargav
Perl bhargavPerl bhargav
Perl bhargav
 
Intro to PHP
Intro to PHPIntro to PHP
Intro to PHP
 
Bioinformatica: Esercizi su Perl, espressioni regolari e altre amenità (BMR G...
Bioinformatica: Esercizi su Perl, espressioni regolari e altre amenità (BMR G...Bioinformatica: Esercizi su Perl, espressioni regolari e altre amenità (BMR G...
Bioinformatica: Esercizi su Perl, espressioni regolari e altre amenità (BMR G...
 
tutorial7
tutorial7tutorial7
tutorial7
 
tutorial7
tutorial7tutorial7
tutorial7
 

Último

Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 

Último (20)

Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 

Perl Scripting

  • 1. Perl Scripting M. Varadharajan Thiagarajar College of Engineering
  • 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. What We Will Cover?  Control Structures  Looping Structures  File Operations  Split & Join  Using shell commands  Advanced Concepts you'll need to know
  • 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. 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. Typical Uses of Perl  Text processing  System administration tasks  CGI and web programming  Database interaction  Other Internet programming
  • 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. 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. 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. 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. 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. 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. 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. Arrays  Set of Scalar variables  Arrays start with '@'  Declaring Arrays: − Syntax: my @array_name=(value1,value2); − Example: my @list = ('varadharajan',99,'cool');
  • 15. Arrays  Accessing individual elements: − Syntax: $array_name[index]; #index starts with 0 − Example: print $list[1]; #prints 10
  • 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. 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. Hashes  Initializing a Hash: − Syntax: my %hash_name = ( key => 'value'); − Example: my %students = ( name => 'varadharajan', age => 1 );
  • 19. Hashes  Accessing a Hash − Syntax: $hash_name{key_name}; − Example: print $student{name}; #prints varadharajan print $student{age}; #prints 18
  • 20. Hash Slices  Just like array slices  Syntax: @hash_name{'key1','key2'};  Example: print @student{'name','age'};
  • 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. 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. 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. Looping Structures  While: $i = 0; while ($i < 10) { print $i; $i++; } # Prints 0123456789
  • 25. Looping Structures  For: for($i=0;$i<10;$i++) { print $i; } # prints 0123456789
  • 26. Looping Structures  Foreach: my @list = (“varadha”,19); foreach $value (@list) { print $value; } # prints the list
  • 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. 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. File Operations  Writing to a File: − Syntax: print FILE_HANDLE “Text”; − Example: print MYFILE “This is the content”;
  • 30. File Operations  Closing a File: − Syntax: close(FILE_HANDLE); − Example: close(MYFILE);
  • 31. Split Function  Splits a scalar variable into arrays − Syntax: @array = split(PATTERN,EXPR); − Example: @words = split(/ /,$sentence);
  • 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. Executing Shell Commands  Makes us executed Shell commands from a Perl script − Syntax: system(command); − Example: $ls_data = system(“ls”);
  • 34. Advanced Concepts  Subroutines  Global and Local variables  Regular Expressions  OO programming  CPAN
  • 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. That's All Folks  Ping me at srinathsmn@gmail.com Thank You