SlideShare a Scribd company logo
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

More Related Content

What's hot (20)

PPTX
Perl bhargav
Bhargav Reddy
 
PPTX
Intro to Perl
primeteacher32
 
PPT
Perl tutorial
Manav Prasad
 
ODP
Perl Introduction
Marcos Rebelo
 
PDF
Perl Programming - 02 Regular Expression
Danairat Thanabodithammachari
 
PPT
PHP - Introduction to PHP
Vibrant Technologies & Computers
 
PPT
Ruby Basics
SHC
 
PPTX
Pearl
Naga Dinesh
 
PPTX
PHP Powerpoint -- Teach PHP with this
Ian Macali
 
ODP
Introducing Modern Perl
Dave Cross
 
PPTX
Unit 1-introduction to perl
sana mateen
 
ODP
PHP Web Programming
Muthuselvam RS
 
PPTX
Php basics
Jamshid Hashimi
 
ODP
perl usage at database applications
Joe Jiang
 
PDF
Introduction to php
KIRAN KUMAR SILIVERI
 
PPTX
PHP Basics
Bhaktaraz Bhatta
 
PPTX
Bioinformatics p1-perl-introduction v2013
Prof. Wim Van Criekinge
 
KEY
Introducing Ruby
James Thompson
 
PDF
PHP Unit 3 functions_in_php_2
Kumar
 
Perl bhargav
Bhargav Reddy
 
Intro to Perl
primeteacher32
 
Perl tutorial
Manav Prasad
 
Perl Introduction
Marcos Rebelo
 
Perl Programming - 02 Regular Expression
Danairat Thanabodithammachari
 
PHP - Introduction to PHP
Vibrant Technologies & Computers
 
Ruby Basics
SHC
 
PHP Powerpoint -- Teach PHP with this
Ian Macali
 
Introducing Modern Perl
Dave Cross
 
Unit 1-introduction to perl
sana mateen
 
PHP Web Programming
Muthuselvam RS
 
Php basics
Jamshid Hashimi
 
perl usage at database applications
Joe Jiang
 
Introduction to php
KIRAN KUMAR SILIVERI
 
PHP Basics
Bhaktaraz Bhatta
 
Bioinformatics p1-perl-introduction v2013
Prof. Wim Van Criekinge
 
Introducing Ruby
James Thompson
 
PHP Unit 3 functions_in_php_2
Kumar
 

Viewers also liked (11)

PDF
Introduction to Perl
worr1244
 
PDF
PerlIntro
tutorialsruby
 
PDF
Perl intro
Swapnesh Singh
 
PDF
POD2::* and Perl translation documentation project
Enrico Sorcinelli
 
PDF
perl-java
tutorialsruby
 
PPT
Perl 101 - The Basics of Perl Programming
Utkarsh Sengar
 
PDF
pickingUpPerl
tutorialsruby
 
PDF
Perl
Tiago
 
PDF
Perl programming language
Elie Obeid
 
PDF
How I Learned to Stop Worrying and Love Email::: The 2007 PEP Talk!!
Ricardo Signes
 
PDF
Perl Scripting
Varadharajan Mukundan
 
Introduction to Perl
worr1244
 
PerlIntro
tutorialsruby
 
Perl intro
Swapnesh Singh
 
POD2::* and Perl translation documentation project
Enrico Sorcinelli
 
perl-java
tutorialsruby
 
Perl 101 - The Basics of Perl Programming
Utkarsh Sengar
 
pickingUpPerl
tutorialsruby
 
Perl
Tiago
 
Perl programming language
Elie Obeid
 
How I Learned to Stop Worrying and Love Email::: The 2007 PEP Talk!!
Ricardo Signes
 
Perl Scripting
Varadharajan Mukundan
 
Ad

Similar to Introduction to perl_ a scripting language (20)

PPT
Introduction to perl scripting______.ppt
nalinisamineni
 
PPT
Bioinformatica 29-09-2011-p1-introduction
Prof. Wim Van Criekinge
 
PPTX
programming language interface i.pptx
urvashipundir04
 
PPTX
Introduction to Perl Programming
Collaboration Technologies
 
PPT
Ruby for Perl Programmers
amiable_indian
 
PPT
ppt30
callroom
 
PPT
ppt21
callroom
 
PPT
name name2 n
callroom
 
PPT
ppt9
callroom
 
PPT
test ppt
callroom
 
PPT
ppt18
callroom
 
PPT
name name2 n2.ppt
callroom
 
PPT
ppt2
callroom
 
PPT
name name2 n
callroom
 
PPT
name name2 n2
callroom
 
PPT
name name2 n
callroom
 
PPT
ppt17
callroom
 
PPT
ppt7
callroom
 
PPTX
SHELL PROGRAMMING
jinal thakrar
 
PDF
Perl tutorial final
Ashoka Vanjare
 
Introduction to perl scripting______.ppt
nalinisamineni
 
Bioinformatica 29-09-2011-p1-introduction
Prof. Wim Van Criekinge
 
programming language interface i.pptx
urvashipundir04
 
Introduction to Perl Programming
Collaboration Technologies
 
Ruby for Perl Programmers
amiable_indian
 
ppt30
callroom
 
ppt21
callroom
 
name name2 n
callroom
 
ppt9
callroom
 
test ppt
callroom
 
ppt18
callroom
 
name name2 n2.ppt
callroom
 
ppt2
callroom
 
name name2 n
callroom
 
name name2 n2
callroom
 
name name2 n
callroom
 
ppt17
callroom
 
ppt7
callroom
 
SHELL PROGRAMMING
jinal thakrar
 
Perl tutorial final
Ashoka Vanjare
 
Ad

Recently uploaded (20)

PDF
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
PDF
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
PPTX
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
PDF
Advancing WebDriver BiDi support in WebKit
Igalia
 
PPTX
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
PDF
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
PDF
IoT-Powered Industrial Transformation – Smart Manufacturing to Connected Heal...
Rejig Digital
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
PPTX
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
PDF
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
PDF
Staying Human in a Machine- Accelerated World
Catalin Jora
 
PDF
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
PDF
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PPTX
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
PDF
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
PDF
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
PPTX
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
Advancing WebDriver BiDi support in WebKit
Igalia
 
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
IoT-Powered Industrial Transformation – Smart Manufacturing to Connected Heal...
Rejig Digital
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
Staying Human in a Machine- Accelerated World
Catalin Jora
 
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 

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

Editor's Notes

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