Perl

Post on 22-May-2015

406 views 0 download

Tags:

description

This presentation is about PERL basics for beginners.

Transcript of Perl

PERLPERLPractical Extraction & Reporting LanguagePractical Extraction & Reporting Language

HistoryDeveloped by Larry Wall in 1987.A combination of C and Unix Shell programming language.Originally developed for UNIX, but now runs under all OS.

“A good perl program is one that gets the job done before your boss fires you.”

Larry Wall, the creator of Perl.

Contents

IntroductionVariablesOperatorsConditional Statements and LoopsRegular ExpressionsSubroutinesFile HandlingMany more....

File Management Contd..binmode(HANDLE): change file mode from text to binary unlink("myfile"): delete file myfile rename("file1","file2"): change name of file file1 to file2 mkdir("mydir"): create directory mydir rmdir("mydir"): delete directory mydir chdir("mydir"): change the current directory to mydir system("command"): execute command command die("message"): exit program with message message warn("message"): warn user about problem message

Introduction

Interpreted language, optimized for string manipulation, I/O and system tasks. Speed of development Easy to use, portable Freely available Extension is .pl Execution : perl file.pl All perl program goes through 2 phases :

a compile phase where the syntax is checked and the source code, including any modules used, is converted into bytecode.

a run-time phase where the bytecode is processed into machine instructions and executed.

Basic Syntax

All statements should end with ';'

# is used for commenting a line

Perl is case sensitive

Basic options : -c, -v, -w

Variables

Three basic data types, scalars, arrays and hashesScalars : Holds a single value of any type.

$var1 = 123$var2 = “Hello, how r u”$var3 = 1.23$1var = 123 # Error

Built-in Functions

Chomp() : The chomp() function will remove (usually) any newline character from the end of a string.Chop() : The chop() function will remove the last character of a string (or group of strings) regardless of what that character is.

Control FlowSyntax same as C

If Construct :

if (expr) {stmt block;}

If Else Construct :

if (expr) {stmt block 1;}else {stmt block 2;}

If Else If Construct :

if (expr1) {stmt block 1;}elsif (expr2) {stmt block 2;}else{default stmt;}

LoopsLoops in Perl are written in the same way as in C.Only remember that the loop variable is a scalar variable and must be preceded by a $ sign.

while (expr) { stmt block;}

do { stmt block;} while (expr);

for (expr1 ; expr2 ; expr3) { stmt block;}

foreach var (listexpr) { stmt block;}

ForeachBehaves same as for loop.

foreach $person (@names) {print "$person";}

$_ : Default Input and Pattern Searching Variable

foreach (@names) {print "$_";}

ListsList is a group of scalars used to initialize and array or hash.Elements can be any type of scalar data.List functions :

Join : Joins list values

Split : A string is splited

Map : Evaluates expression or blocks

Grep : Returns a sublist of list for each a specific criteria is true

ArraysIn Perl an array does not have to be declared before it is used. The size of an array increases dynamically. An array variable has an @ before it.

@num = (1,2,3,4,5);@num = (1..5);@mix_arr = ("Tom", 5, "Cruise", 90, "Jane", 35.67 34, 78, "I am

Bond");

You can assign an array element to any index - even one that is beyond the current range of index numbers. The in-between elements are assigned null values.

Push, Pop and SpliceThe push function pushes an element onto an array. If the last

element in an array has index 5, pushing an element onto the array makes it the element with index 6.

The syntax is:push(@arrayname, value);

The pop function pops off the last element off the array. So, if the last element in the array @myarray is 99, then the statement

$num = pop(@myarray);

assigns the value 99 to $num.

The splice function is used to pop more than one element.

(splice(@myarray, -3) will remove three elements from the end of the array

Unshift and ShiftThese work like the push and pop operators, but add and

subtract from the beginning of an array rather than the end.

The syntax isunshift(@arrayname, value);

shift(@arrayname);

Associative Array or HashHashes are a list of scalars, but instead of being accessed by

index number, they are accessed by a key.Syntax : %myhash = ('Key1', 'Val1', 'Key2', 'Val2', 'Key3', 'Val3')

Index No Value

0 Spain

1 Belgium

2 Germany

3 Netherlands

Key Value

SP Spain

BL Belgium

GE Germany

NL Netherlands

Perl Command LineRead from command prompt.

Go to example.

Hash FunctionsAssigning : $countries{PT} = 'Portugal';Deleting : delete $countries{NL};Print all the keys : print keys %countries;Print all the values : print values %countries;A slice of hash : print @countries{'NL', 'BL'};How many elements : print scalar(keys %countries);Does the key exist : print “I exist \n” if exists $countries{'NL'};

SubroutineSyntax for subroutines :

Sub subname { Stmt block;}

Value of the last expression evaluated by the subroutine is automatically considered to be subroutine's return value.

Foreach $var (&subname) { Stmt block;}

Perl defines 3 special subroutines that are executed at specific times.

BEGIN : Called when our program starts running.END : Called when the program terminates.AUTOLOAD : Called when the program cannot find a subroutine it is

supposed to execute.

File Managementopen(INFILE,"myfile"): reading open(OUTFILE,">myfile"): writing open(OUTFILE,">>myfile"): appending open(INFILE,"someprogram |"): reading from program open(OUTFILE,"| someprogram"): writing to program opendir(DIR,"mydirectory"): open directo

Operations on an open file handle$a = <INFILE>: read a line from INFILE into $a @a = <INFILE>: read all lines from INFILE into @a $a = readdir(DIR): read a filename from DIR into $a @a = readdir(DIR): read all filenames from DIR into @a read(INFILE,$a,$length): read $length characters from INFILE

into $a print OUTFILE "text": write some text in OUTFILE

Close files / directoriesclose(FILE): close a file closedir(DIR): close a directory

Perl DebuggerPerl -d myprogram.pl

Debugger commands :

l : lists the next few statements.l 10 : specifies the line numberl 10-15 : display a range of linesl subroutine : display subroutine- : display the immediately preceding the last displayed line/search'/ : Search for a line containing the pattern?backsearch? : To search backword for a patternS : lists all the subroutines in the files : execute single statement and displays next statement to executen : same as s command, but n command does not enter subroutine, directly execute

itr : if we are inside a subroutine and do not want to execute further, this command

finishes subroutine execution and returns to the last statement called the subroutine

X : print the value of a particular variableb 10 : set a breakpoint to our programc : after breakpoint set, this command execute till the breakpointL : display all the breakpointsB 10 : delete break pointsB * : delete all breakpoints

ResourcesPerl.comPerl.orgLists.perl.orgPerlmonksStackoverflowPerl mongersSearch.cpan.org

Continued...