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)

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

Viewers also liked (11)

Introduction to Perl
Introduction to Perl
worr1244
 
PerlIntro
PerlIntro
tutorialsruby
 
Perl intro
Perl intro
Swapnesh Singh
 
POD2::* and Perl translation documentation project
POD2::* and Perl translation documentation project
Enrico Sorcinelli
 
perl-java
perl-java
tutorialsruby
 
Perl 101 - The Basics of Perl Programming
Perl 101 - The Basics of Perl Programming
Utkarsh Sengar
 
pickingUpPerl
pickingUpPerl
tutorialsruby
 
Perl
Perl
Tiago
 
Perl programming language
Perl programming language
Elie 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!!
Ricardo Signes
 
Perl Scripting
Perl Scripting
Varadharajan Mukundan
 
Introduction to Perl
Introduction to Perl
worr1244
 
POD2::* and Perl translation documentation project
POD2::* and Perl translation documentation project
Enrico Sorcinelli
 
Perl 101 - The Basics of Perl Programming
Perl 101 - The Basics of Perl Programming
Utkarsh Sengar
 
Perl programming language
Perl programming language
Elie 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!!
Ricardo Signes
 
Ad

Similar to Introduction to perl_ a scripting language (20)

Introduction to perl scripting______.ppt
Introduction to perl scripting______.ppt
nalinisamineni
 
Introduction to Perl
Introduction to Perl
NBACriteria2SICET
 
PERL.ppt
PERL.ppt
Farmood Alam
 
Perl Programming_Guide_Document_Refr.ppt
Perl Programming_Guide_Document_Refr.ppt
ssuserf4000e1
 
Introduction to Perl
Introduction to Perl
Dave Cross
 
Learn perl in amc square learning
Learn perl in amc square learning
ASIT Education
 
programming language interface i.pptx
programming language interface i.pptx
urvashipundir04
 
Intro to Perl and Bioperl
Intro to Perl and Bioperl
Bioinformatics and Computational Biosciences Branch
 
PERL - complete_Training_Modules_Ref.ppt
PERL - complete_Training_Modules_Ref.ppt
ssuserf4000e1
 
PERL - complete_guide_references (1).ppt
PERL - complete_guide_references (1).ppt
ssuserf4000e1
 
LPW: Beginners Perl
LPW: Beginners Perl
Dave Cross
 
PERL for QA - Important Commands and applications
PERL for QA - Important Commands and applications
Sunil Kumar Gunasekaran
 
Introduction to Perl - Day 1
Introduction to Perl - Day 1
Dave Cross
 
Beginning Perl
Beginning Perl
Dave Cross
 
Perl slid
Perl slid
pacatarpit
 
perl lauange
perl lauange
Naga Dinesh
 
Perl training-in-navi mumbai
Perl training-in-navi mumbai
vibrantuser
 
Introduction to PERL Programming - Complete Notes
Introduction to PERL Programming - Complete Notes
Jason J Pulikkottil
 
introduction to Perl _ the programming language.pptx
introduction to Perl _ the programming language.pptx
gayathriaddula502
 
Introduction to perl_lists
Introduction to perl_lists
Vamshi Santhapuri
 
Introduction to perl scripting______.ppt
Introduction to perl scripting______.ppt
nalinisamineni
 
Perl Programming_Guide_Document_Refr.ppt
Perl Programming_Guide_Document_Refr.ppt
ssuserf4000e1
 
Introduction to Perl
Introduction to Perl
Dave Cross
 
Learn perl in amc square learning
Learn perl in amc square learning
ASIT Education
 
programming language interface i.pptx
programming language interface i.pptx
urvashipundir04
 
PERL - complete_Training_Modules_Ref.ppt
PERL - complete_Training_Modules_Ref.ppt
ssuserf4000e1
 
PERL - complete_guide_references (1).ppt
PERL - complete_guide_references (1).ppt
ssuserf4000e1
 
LPW: Beginners Perl
LPW: Beginners Perl
Dave Cross
 
PERL for QA - Important Commands and applications
PERL for QA - Important Commands and applications
Sunil Kumar Gunasekaran
 
Introduction to Perl - Day 1
Introduction to Perl - Day 1
Dave Cross
 
Beginning Perl
Beginning Perl
Dave Cross
 
Perl training-in-navi mumbai
Perl training-in-navi mumbai
vibrantuser
 
Introduction to PERL Programming - Complete Notes
Introduction to PERL Programming - Complete Notes
Jason J Pulikkottil
 
introduction to Perl _ the programming language.pptx
introduction to Perl _ the programming language.pptx
gayathriaddula502
 
Ad

Recently uploaded (20)

War_And_Cyber_3_Years_Of_Struggle_And_Lessons_For_Global_Security.pdf
War_And_Cyber_3_Years_Of_Struggle_And_Lessons_For_Global_Security.pdf
biswajitbanerjee38
 
vertical-cnc-processing-centers-drillteq-v-200-en.pdf
vertical-cnc-processing-centers-drillteq-v-200-en.pdf
AmirStern2
 
Crypto Super 500 - 14th Report - June2025.pdf
Crypto Super 500 - 14th Report - June2025.pdf
Stephen Perrenod
 
Bridging the divide: A conversation on tariffs today in the book industry - T...
Bridging the divide: A conversation on tariffs today in the book industry - T...
BookNet Canada
 
National Fuels Treatments Initiative: Building a Seamless Map of Hazardous Fu...
National Fuels Treatments Initiative: Building a Seamless Map of Hazardous Fu...
Safe Software
 
Kubernetes Security Act Now Before It’s Too Late
Kubernetes Security Act Now Before It’s Too Late
Michael Furman
 
Your startup on AWS - How to architect and maintain a Lean and Mean account
Your startup on AWS - How to architect and maintain a Lean and Mean account
angelo60207
 
Agentic AI: Beyond the Buzz- LangGraph Studio V2
Agentic AI: Beyond the Buzz- LangGraph Studio V2
Shashikant Jagtap
 
High Availability On-Premises FME Flow.pdf
High Availability On-Premises FME Flow.pdf
Safe Software
 
Introduction to Typescript - GDG On Campus EUE
Introduction to Typescript - GDG On Campus EUE
Google Developer Group On Campus European Universities in Egypt
 
“Why It’s Critical to Have an Integrated Development Methodology for Edge AI,...
“Why It’s Critical to Have an Integrated Development Methodology for Edge AI,...
Edge AI and Vision Alliance
 
“From Enterprise to Makers: Driving Vision AI Innovation at the Extreme Edge,...
“From Enterprise to Makers: Driving Vision AI Innovation at the Extreme Edge,...
Edge AI and Vision Alliance
 
FIDO Alliance Seminar State of Passkeys.pptx
FIDO Alliance Seminar State of Passkeys.pptx
FIDO Alliance
 
Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...
Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...
Safe Software
 
Murdledescargadarkweb.pdfvolumen1 100 elementary
Murdledescargadarkweb.pdfvolumen1 100 elementary
JorgeSemperteguiMont
 
MuleSoft for AgentForce : Topic Center and API Catalog
MuleSoft for AgentForce : Topic Center and API Catalog
shyamraj55
 
Enabling BIM / GIS integrations with Other Systems with FME
Enabling BIM / GIS integrations with Other Systems with FME
Safe Software
 
FIDO Seminar: Targeting Trust: The Future of Identity in the Workforce.pptx
FIDO Seminar: Targeting Trust: The Future of Identity in the Workforce.pptx
FIDO Alliance
 
June Patch Tuesday
June Patch Tuesday
Ivanti
 
Your startup on AWS - How to architect and maintain a Lean and Mean account J...
Your startup on AWS - How to architect and maintain a Lean and Mean account J...
angelo60207
 
War_And_Cyber_3_Years_Of_Struggle_And_Lessons_For_Global_Security.pdf
War_And_Cyber_3_Years_Of_Struggle_And_Lessons_For_Global_Security.pdf
biswajitbanerjee38
 
vertical-cnc-processing-centers-drillteq-v-200-en.pdf
vertical-cnc-processing-centers-drillteq-v-200-en.pdf
AmirStern2
 
Crypto Super 500 - 14th Report - June2025.pdf
Crypto Super 500 - 14th Report - June2025.pdf
Stephen Perrenod
 
Bridging the divide: A conversation on tariffs today in the book industry - T...
Bridging the divide: A conversation on tariffs today in the book industry - T...
BookNet Canada
 
National Fuels Treatments Initiative: Building a Seamless Map of Hazardous Fu...
National Fuels Treatments Initiative: Building a Seamless Map of Hazardous Fu...
Safe Software
 
Kubernetes Security Act Now Before It’s Too Late
Kubernetes Security Act Now Before It’s Too Late
Michael Furman
 
Your startup on AWS - How to architect and maintain a Lean and Mean account
Your startup on AWS - How to architect and maintain a Lean and Mean account
angelo60207
 
Agentic AI: Beyond the Buzz- LangGraph Studio V2
Agentic AI: Beyond the Buzz- LangGraph Studio V2
Shashikant Jagtap
 
High Availability On-Premises FME Flow.pdf
High Availability On-Premises FME Flow.pdf
Safe Software
 
“Why It’s Critical to Have an Integrated Development Methodology for Edge AI,...
“Why It’s Critical to Have an Integrated Development Methodology for Edge AI,...
Edge AI and Vision Alliance
 
“From Enterprise to Makers: Driving Vision AI Innovation at the Extreme Edge,...
“From Enterprise to Makers: Driving Vision AI Innovation at the Extreme Edge,...
Edge AI and Vision Alliance
 
FIDO Alliance Seminar State of Passkeys.pptx
FIDO Alliance Seminar State of Passkeys.pptx
FIDO Alliance
 
Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...
Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...
Safe Software
 
Murdledescargadarkweb.pdfvolumen1 100 elementary
Murdledescargadarkweb.pdfvolumen1 100 elementary
JorgeSemperteguiMont
 
MuleSoft for AgentForce : Topic Center and API Catalog
MuleSoft for AgentForce : Topic Center and API Catalog
shyamraj55
 
Enabling BIM / GIS integrations with Other Systems with FME
Enabling BIM / GIS integrations with Other Systems with FME
Safe Software
 
FIDO Seminar: Targeting Trust: The Future of Identity in the Workforce.pptx
FIDO Seminar: Targeting Trust: The Future of Identity in the Workforce.pptx
FIDO Alliance
 
June Patch Tuesday
June Patch Tuesday
Ivanti
 
Your startup on AWS - How to architect and maintain a Lean and Mean account J...
Your startup on AWS - How to architect and maintain a Lean and Mean account J...
angelo60207
 

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