SlideShare una empresa de Scribd logo
1 de 24
Vamshi Krishna S
Practical Extraction and Report Language
‘A general-purpose programming language originally developed for text
manipulation and now used for a wide range of tasks including system
administration, web development-CGI scripting, network programming, GUI
development, and more.’
‘The language is intended to be PRACTICAL (easy to use, efficient, complete) rather than
BEAUTIFUL (tiny, elegant, minimal).’
And Some More:
‘Many earlier computer languages, such as Fortran and C, were designed to make
efficient use of expensive
computer hardware. In contrast, Perl is designed to make efficient use of
expensive computer programmers.
Perl has many features that ease the programmer's task at the expense of greater
CPU and memory requirements.
These include automatic memory management; dynamic typing; strings, lists, and
hashes; regular expressions;
 Larry Wall invented PERL in the mid-1980's
Larry Wall was trained as a linguist, and the design of Perl is very much
informed by linguistic principles.
Examples include Huffman coding (common constructions should be
short), good end-weighting (the important information should
come first), and a large collection of language primitives. Perl favors
language constructs that are natural for humans to
read and write, even where they complicate the Perl interpreter.’
Perl has rapidly become the language of choice for writing programs
quickly and robustly across a wide range of fields - ranging from
systems administration, text processing, linguistic analysis, molecular
biology and (most importantly of all) the creation of dynamic World
Wide Web pages. It has been estimated that about 80% of dynamic
webpages worldwide are being created by Perl programs.
 PERL encompasses both the syntactical rules of the
language and the general ways in which programs are
organized
 It is dynamically typed language.
 Relatively easy to learn (and easier to make a mess
too).
 incredibly flexible coding style (some argues it is too
flexible).
 Perl is interpreted not complied hence its scripting
language.
 It follows OOPs concepts.
 http://perldoc.perl.org/perldoc.html
 CPAN(comprehensive Pern Archive
Network) : consists of Additional perl
modules(more than 100,000 modules),
documentation,various releases etc.,
 HTTP://cpan.org/
 Define the problem
 Search for existing code
 Plan your solution
 Write the code
 Modify ->Debug ->Modify
 Run the code
 Now-a-days On *nix
OSes Perl comes
installed
automatically. And
can be located at
/usr/bin/perl and /
usr/local/bin/perl
To install Perl on
Windows :
 http://strawberry
perl.com/
 http://www.activ
estate.com/active
perl
 Open a terminal
 Make a perl dir(directory) in your home dir
 Move into the perl directory
 Create a file named ‘hello_world.pl’
 Open the file in your text editor
 Code the program
 Save the file
 Make the program executable
 Test the program.
 # Unix
 perl -e 'print "Hello worldn"‘
 # MS-DOS
 perl -e "print "Hello worldn""
Location of perl is normally in
/usr/bin/perl and /usr/local/bin/perl
Perfix the script with #!/usr/bin/perl
And also you can type in “use <version>” to use the
latest version
#!/usr/bin/perl -w
use strict;
use warnings;
my $message = ‘Welcome to perl tutorial’;
print “t hello world $message.!!n”;
print ‘hello world $message.!!n’
#prints $messagen literally
 Scalar: a single piece of information. Scalars can
hold numbers or text
 $ is the identifier of scalar in perl
 There are special variables for the system: $ARGV,$!
 @scores = (32, 45, 16, 5);
 @cars = (BMW,Renault,Jaguar,Ferrari); or @cars =
qw(BMW Renault Jaguar Ferrari);
 my @sorted = sort @cars;
 my @backwards = reverse @scores;
 $multilined_string = <<EOF; This is my multilined string note that I am
terminating it with the word "EOF". EOF
 Scalar values are represented as $var = <num/char> ; Dynamic typing
 Array/List: an ordered collection of scalars
 my @array = ( 1, 2 );
 my @words = ( "first", "second", "third" );
 my @mixed = ("camel", 42, 1.23);
print $mixed[$#mixed]; # last element, prints out
1.23
 Subscripts
An array can be accessed one scalar at a time by specifying a
dollar sign ($ ), then the name of the array (without the
leading @ ), then the subscript inside square brackets.
 For example:
@myarray = (5, 50, 500, 5000);
print "The Third Element is", $myarray[2], "n";
Declaration of HASHes
%scientists =
(
"Newton" => "Isaac",
"Einstein" => "Albert",
"Darwin" => "Charles",
"Feynman" => "Richard",
);
print "Darwin's First Name is ", $scientists{"Darwin"}, "n";
Hash subscripts are similar, only instead of square brackets curly brackets
are used
my %fruit_color = ("apple", "red", "banana", "yellow");
 To get at hash elements:
$fruit_color{"apple"}; # gives "red“
 To get a lists of keys and values with keys() and values().
my @fruits = keys %fruit_colors;
my @colors = values %fruit_colors;
 Some scalar variables have special meaning
in Perl. Of note are `$_`,
`$!`, `$0`, and `$$`.
 There are system defined functions for
operations on Scalar variables, Arrays,
Hashes, File Handlers, Regular Expressions,
Sub routines, Modules etc., which appear like
keywords some times and take arguments
Eg: Chomp, join, my, our, grep, mkdir, open,
import,defined,undef,sort,reverse etc.,
For detailed description follow: http://perldoc.perl.org/perlfunc.html#Perl-Functions-by-Category
 double quotes(“), single quotes(‘) and
multi-line quoting(qq) :
$var =10;
$text = “There are $var apples”
$text2 = ‘There are $var apples’
$text3 = qq{
There
are
$var
apples};
Functions are blocks of code which perform specific task
#takes no input and returns no output… common practice to use
#‘main’ as the starting point in a script.
sub main {
…
}
#Takes 2 *scalars* as input sums them and returns one scalar.
sub sum_2_numbers {
my ($numA,$numB) = @_; #get passed in values
my $sum = $numA+$numB; #sum numbers
return($sum); #return sum
}
 if/else
 if ( condition ) {…} elsif ( other condition ) {…} else {…}
 Unless
die "Can't cd to spool: $!n" unless chdir '/usr/spool/news';
 While
while (($key, $value) = each %hash) {
print $key, "n";
delete $hash{$key};
}
 Until
$count = 10; until ($count == 0) { print "$count "; $count--;}
 foreach
foreach $index (0 .. $#ARRAY) {
delete $ARRAY[$index];
 Logical operators: ==, !=, &&, ||, eq and ne
 Undefined/” ”/0 values are treated as
false
 Scalars are evaluated as:
numbers are evaluated as true if non-zero
strings are evaluated as true if non-empty
$var = “false”;
if($var)
{
say “$var is true!”;
}
 Scripts can take inputs in two ways:
 Arguments
 ./print_args.pl ARG1 ARG2
 Prompted inputs from users
 $user_text = <STDIN>
 Things don’t always come out as expected. It
is good to check the output of important
functions for errors, it is highly
recommended to validate any input from
users or external sources
 Die
 Warn
Introduction to perl_ a scripting language

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Perl bhargav
Perl bhargavPerl bhargav
Perl bhargav
 
Intro to Perl
Intro to PerlIntro to Perl
Intro to Perl
 
Basics PHP
Basics PHPBasics PHP
Basics PHP
 
Perl tutorial
Perl tutorialPerl tutorial
Perl tutorial
 
Perl Introduction
Perl IntroductionPerl Introduction
Perl Introduction
 
Perl Programming - 02 Regular Expression
Perl Programming - 02 Regular ExpressionPerl Programming - 02 Regular Expression
Perl Programming - 02 Regular Expression
 
PHP - Introduction to PHP
PHP -  Introduction to PHPPHP -  Introduction to PHP
PHP - Introduction to PHP
 
Ruby Basics
Ruby BasicsRuby Basics
Ruby Basics
 
Pearl
PearlPearl
Pearl
 
PHP Powerpoint -- Teach PHP with this
PHP Powerpoint -- Teach PHP with thisPHP Powerpoint -- Teach PHP with this
PHP Powerpoint -- Teach PHP with this
 
Introducing Modern Perl
Introducing Modern PerlIntroducing Modern Perl
Introducing Modern Perl
 
Unit 1-introduction to perl
Unit 1-introduction to perlUnit 1-introduction to perl
Unit 1-introduction to perl
 
PHP Web Programming
PHP Web ProgrammingPHP Web Programming
PHP Web Programming
 
Php basics
Php basicsPhp basics
Php basics
 
perl usage at database applications
perl usage at database applicationsperl usage at database applications
perl usage at database applications
 
Introduction to php
Introduction to phpIntroduction to php
Introduction to php
 
PHP Basics
PHP BasicsPHP Basics
PHP Basics
 
Bioinformatics p1-perl-introduction v2013
Bioinformatics p1-perl-introduction v2013Bioinformatics p1-perl-introduction v2013
Bioinformatics p1-perl-introduction v2013
 
Introducing Ruby
Introducing RubyIntroducing Ruby
Introducing Ruby
 
PHP Unit 3 functions_in_php_2
PHP Unit 3 functions_in_php_2PHP Unit 3 functions_in_php_2
PHP Unit 3 functions_in_php_2
 

Destacado

Introduction to Perl
Introduction to PerlIntroduction to Perl
Introduction to Perlworr1244
 
POD2::* and Perl translation documentation project
POD2::* and Perl translation documentation projectPOD2::* and Perl translation documentation project
POD2::* and Perl translation documentation projectEnrico Sorcinelli
 
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
 
Perl programming language
Perl programming languagePerl programming language
Perl programming languageElie Obeid
 
How I Learned to Stop Worrying and Love Email::: The 2007 PEP Talk!!
How I Learned to Stop Worrying and Love Email::: The 2007 PEP Talk!!How I Learned to Stop Worrying and Love Email::: The 2007 PEP Talk!!
How I Learned to Stop Worrying and Love Email::: The 2007 PEP Talk!!Ricardo Signes
 

Destacado (11)

Introduction to Perl
Introduction to PerlIntroduction to Perl
Introduction to Perl
 
PerlIntro
PerlIntroPerlIntro
PerlIntro
 
Perl intro
Perl introPerl intro
Perl intro
 
POD2::* and Perl translation documentation project
POD2::* and Perl translation documentation projectPOD2::* and Perl translation documentation project
POD2::* and Perl translation documentation project
 
perl-java
perl-javaperl-java
perl-java
 
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
 
pickingUpPerl
pickingUpPerlpickingUpPerl
pickingUpPerl
 
Perl
PerlPerl
Perl
 
Perl programming language
Perl programming languagePerl programming language
Perl programming language
 
How I Learned to Stop Worrying and Love Email::: The 2007 PEP Talk!!
How I Learned to Stop Worrying and Love Email::: The 2007 PEP Talk!!How I Learned to Stop Worrying and Love Email::: The 2007 PEP Talk!!
How I Learned to Stop Worrying and Love Email::: The 2007 PEP Talk!!
 
Perl Scripting
Perl ScriptingPerl Scripting
Perl Scripting
 

Similar a Introduction to perl_ a scripting language

Similar a Introduction to perl_ a scripting language (20)

Bioinformatica 29-09-2011-p1-introduction
Bioinformatica 29-09-2011-p1-introductionBioinformatica 29-09-2011-p1-introduction
Bioinformatica 29-09-2011-p1-introduction
 
Introduction to Perl Programming
Introduction to Perl ProgrammingIntroduction to Perl Programming
Introduction to Perl Programming
 
ppt7
ppt7ppt7
ppt7
 
ppt2
ppt2ppt2
ppt2
 
name name2 n
name name2 nname name2 n
name name2 n
 
test ppt
test ppttest ppt
test ppt
 
name name2 n
name name2 nname name2 n
name name2 n
 
ppt21
ppt21ppt21
ppt21
 
name name2 n
name name2 nname name2 n
name name2 n
 
ppt17
ppt17ppt17
ppt17
 
ppt30
ppt30ppt30
ppt30
 
name name2 n2.ppt
name name2 n2.pptname name2 n2.ppt
name name2 n2.ppt
 
ppt18
ppt18ppt18
ppt18
 
Ruby for Perl Programmers
Ruby for Perl ProgrammersRuby for Perl Programmers
Ruby for Perl Programmers
 
ppt9
ppt9ppt9
ppt9
 
name name2 n2
name name2 n2name name2 n2
name name2 n2
 
SHELL PROGRAMMING
SHELL PROGRAMMINGSHELL PROGRAMMING
SHELL PROGRAMMING
 
Perl tutorial final
Perl tutorial finalPerl tutorial final
Perl tutorial final
 
Introduction to Perl
Introduction to PerlIntroduction to Perl
Introduction to Perl
 
Introduction to writing readable and maintainable Perl
Introduction to writing readable and maintainable PerlIntroduction to writing readable and maintainable Perl
Introduction to writing readable and maintainable Perl
 

Último

Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
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
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
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
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
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
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 

Último (20)

Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
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
 
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
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
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
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
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
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 

Introduction to perl_ a scripting language

  • 2. Practical Extraction and Report Language ‘A general-purpose programming language originally developed for text manipulation and now used for a wide range of tasks including system administration, web development-CGI scripting, network programming, GUI development, and more.’ ‘The language is intended to be PRACTICAL (easy to use, efficient, complete) rather than BEAUTIFUL (tiny, elegant, minimal).’ And Some More: ‘Many earlier computer languages, such as Fortran and C, were designed to make efficient use of expensive computer hardware. In contrast, Perl is designed to make efficient use of expensive computer programmers. Perl has many features that ease the programmer's task at the expense of greater CPU and memory requirements. These include automatic memory management; dynamic typing; strings, lists, and hashes; regular expressions;
  • 3.  Larry Wall invented PERL in the mid-1980's Larry Wall was trained as a linguist, and the design of Perl is very much informed by linguistic principles. Examples include Huffman coding (common constructions should be short), good end-weighting (the important information should come first), and a large collection of language primitives. Perl favors language constructs that are natural for humans to read and write, even where they complicate the Perl interpreter.’ Perl has rapidly become the language of choice for writing programs quickly and robustly across a wide range of fields - ranging from systems administration, text processing, linguistic analysis, molecular biology and (most importantly of all) the creation of dynamic World Wide Web pages. It has been estimated that about 80% of dynamic webpages worldwide are being created by Perl programs.
  • 4.  PERL encompasses both the syntactical rules of the language and the general ways in which programs are organized  It is dynamically typed language.  Relatively easy to learn (and easier to make a mess too).  incredibly flexible coding style (some argues it is too flexible).  Perl is interpreted not complied hence its scripting language.  It follows OOPs concepts.  http://perldoc.perl.org/perldoc.html
  • 5.  CPAN(comprehensive Pern Archive Network) : consists of Additional perl modules(more than 100,000 modules), documentation,various releases etc.,  HTTP://cpan.org/
  • 6.  Define the problem  Search for existing code  Plan your solution  Write the code  Modify ->Debug ->Modify  Run the code
  • 7.  Now-a-days On *nix OSes Perl comes installed automatically. And can be located at /usr/bin/perl and / usr/local/bin/perl To install Perl on Windows :  http://strawberry perl.com/  http://www.activ estate.com/active perl
  • 8.  Open a terminal  Make a perl dir(directory) in your home dir  Move into the perl directory  Create a file named ‘hello_world.pl’  Open the file in your text editor  Code the program  Save the file  Make the program executable  Test the program.
  • 9.  # Unix  perl -e 'print "Hello worldn"‘  # MS-DOS  perl -e "print "Hello worldn""
  • 10. Location of perl is normally in /usr/bin/perl and /usr/local/bin/perl Perfix the script with #!/usr/bin/perl And also you can type in “use <version>” to use the latest version #!/usr/bin/perl -w use strict; use warnings; my $message = ‘Welcome to perl tutorial’; print “t hello world $message.!!n”; print ‘hello world $message.!!n’ #prints $messagen literally
  • 11.  Scalar: a single piece of information. Scalars can hold numbers or text  $ is the identifier of scalar in perl  There are special variables for the system: $ARGV,$!  @scores = (32, 45, 16, 5);  @cars = (BMW,Renault,Jaguar,Ferrari); or @cars = qw(BMW Renault Jaguar Ferrari);  my @sorted = sort @cars;  my @backwards = reverse @scores;  $multilined_string = <<EOF; This is my multilined string note that I am terminating it with the word "EOF". EOF  Scalar values are represented as $var = <num/char> ; Dynamic typing
  • 12.  Array/List: an ordered collection of scalars  my @array = ( 1, 2 );  my @words = ( "first", "second", "third" );  my @mixed = ("camel", 42, 1.23); print $mixed[$#mixed]; # last element, prints out 1.23  Subscripts An array can be accessed one scalar at a time by specifying a dollar sign ($ ), then the name of the array (without the leading @ ), then the subscript inside square brackets.  For example: @myarray = (5, 50, 500, 5000); print "The Third Element is", $myarray[2], "n";
  • 13. Declaration of HASHes %scientists = ( "Newton" => "Isaac", "Einstein" => "Albert", "Darwin" => "Charles", "Feynman" => "Richard", ); print "Darwin's First Name is ", $scientists{"Darwin"}, "n"; Hash subscripts are similar, only instead of square brackets curly brackets are used
  • 14. my %fruit_color = ("apple", "red", "banana", "yellow");  To get at hash elements: $fruit_color{"apple"}; # gives "red“  To get a lists of keys and values with keys() and values(). my @fruits = keys %fruit_colors; my @colors = values %fruit_colors;
  • 15.  Some scalar variables have special meaning in Perl. Of note are `$_`, `$!`, `$0`, and `$$`.
  • 16.  There are system defined functions for operations on Scalar variables, Arrays, Hashes, File Handlers, Regular Expressions, Sub routines, Modules etc., which appear like keywords some times and take arguments Eg: Chomp, join, my, our, grep, mkdir, open, import,defined,undef,sort,reverse etc., For detailed description follow: http://perldoc.perl.org/perlfunc.html#Perl-Functions-by-Category
  • 17.  double quotes(“), single quotes(‘) and multi-line quoting(qq) : $var =10; $text = “There are $var apples” $text2 = ‘There are $var apples’ $text3 = qq{ There are $var apples};
  • 18. Functions are blocks of code which perform specific task #takes no input and returns no output… common practice to use #‘main’ as the starting point in a script. sub main { … } #Takes 2 *scalars* as input sums them and returns one scalar. sub sum_2_numbers { my ($numA,$numB) = @_; #get passed in values my $sum = $numA+$numB; #sum numbers return($sum); #return sum }
  • 19.  if/else  if ( condition ) {…} elsif ( other condition ) {…} else {…}  Unless die "Can't cd to spool: $!n" unless chdir '/usr/spool/news';  While while (($key, $value) = each %hash) { print $key, "n"; delete $hash{$key}; }  Until $count = 10; until ($count == 0) { print "$count "; $count--;}  foreach foreach $index (0 .. $#ARRAY) { delete $ARRAY[$index];
  • 20.  Logical operators: ==, !=, &&, ||, eq and ne
  • 21.  Undefined/” ”/0 values are treated as false  Scalars are evaluated as: numbers are evaluated as true if non-zero strings are evaluated as true if non-empty $var = “false”; if($var) { say “$var is true!”; }
  • 22.  Scripts can take inputs in two ways:  Arguments  ./print_args.pl ARG1 ARG2  Prompted inputs from users  $user_text = <STDIN>
  • 23.  Things don’t always come out as expected. It is good to check the output of important functions for errors, it is highly recommended to validate any input from users or external sources  Die  Warn

Notas del editor

  1. Get unix/programming background Purpose of the course is more a introduction to perl, a quick tour rather than a programming course.
  2. Dynamic typing