my perl ppt

45
PERL PRESENTED BY: P.SAI NITHISH KUMAR INSTRUCTOR: DR. ANDREWS FIGUEROA.

Upload: nithish-kumar

Post on 18-Aug-2015

24 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: My Perl Ppt

PERL

PRESENTED BY: P.SAI NITHISH KUMAR

INSTRUCTOR: DR. ANDREWS FIGUEROA.

Page 2: My Perl Ppt

Index Introduction to perl

Why perl?

Perl environment

Installation procedure

Execution procedure

First line

Perl basics

Evaluation of perl

Datatypes

Functions

Mistakes done by programmer

Advantages

Disadvantages

Page 3: My Perl Ppt

INTRODUCTION

Its written by Larry wall and first released in 1987.

Perl is an Open Source Software. Hence easy available.

Perl in an interpreted language, like Java, Pascal, awk, sed, Tcl, or Smalltalk.

It is a scripting language .

Perl is a case sensitive programming language.

Page 4: My Perl Ppt

Why PERL ?

Perl stands for practical extraction and report language. It is ideally used to handle words and text.

Easy available. All the data is available in internet Perl is free to download from the GNU website so it is very easily

accessible . Perl is also available for MS-DOS,WIN-NT, Windows OS etc. Perl language is quoted as “it makes an easy task even easier

and makes the harder things possible”

Page 5: My Perl Ppt

Perl Environment

Perl is available on a wide variety of platforms:

Unix (Solaris, SunOS, etc..)

Linux(Redhat, Ubuntu, Fedora etc.)

Windows

MacCan use system commands

Symbian

Debian GNU/kFreeBSD

MirOS BSD

And many more…

Page 6: My Perl Ppt

Perl features:

Perl takes the best features from other languages, such as C, awk, sed, sh, and BASIC, among other

Perl works with HTML, XML, and other mark-up languages.

Perl supports Unicode.

Perl supports both procedural and object-oriented programming.

The Perl interpreter can be embedded into other systems, which means that your code can be run as it is, without a compilation stage that creates a non portable executable program.

Page 7: My Perl Ppt

Perl Basics

Statements must end with semicolon $a = 0;

Should call exit() function when finished Exit value of zero means success

exit (0); # successful

Exit value non-zero means failure exit (2); # failure

Page 8: My Perl Ppt

Basic input/output files:

Predefined File Handles <STDIN> input

<STDOUT> output

<STDERR> output

print STDERR “big bad error occurred\n”;

Page 9: My Perl Ppt

Versions of Perl:

5.5 2004-02-23

5.6 2003-11-15

5.8 2008-12-14

5.10 2009-08-23

5.12 2012-11-10

5.14 2013-03-10

5.16 2013-03-11

5.18 2014-10-02

5.20 2015-02-14

5.22 2015-06-01

Page 10: My Perl Ppt

PERL Installation Procedure

Linux $tar –xzf perl-5.x.y.tar.gz

$cd perl-5.x.y

$./Configure –de

$make

$make test

$make install

Windows Install software like strawberry

Perl

http://activestate.com/

Also check out these sites: ● http://perl.com/ http://www.perl.org/

Page 11: My Perl Ppt

Execution Procedure :

The Perl scripts should be saved in .pl extension

Example:-

Helloworld.pl

Execution:

$perl script.pl --- for Linux/Unix

C:>perl script.pl --- for Windows/MS-DOS

Page 12: My Perl Ppt

First line

In linux and unix platform we have to use the line given below before entering the script and windows doesn’t need any thing.

• #!/user/bin/perl //it gives the path to the program

Here, /user/bin/perl is actual Perl interpreter binary.

# is used for comment..

Example:

$perl -e 'print "Hello World\n“’;

Output: hello, world

Page 13: My Perl Ppt

Write a script:

We generally start a Perl script with the "shebang" line,

which looks something like one of these:

#!/usr/bin/perl

#!/usr/local/bin/perl

#!/usr/local/bin/perl5

#!/usr/bin/perl -w etc

● This is not necessary on many systems, but when it is, it is, so it's a good habit to get into.

● The purpose of this line is to tell the server which version of Perl to use, by pointing to the location in the server directory of the Perl executable.

Page 14: My Perl Ppt

Perl identifiers

A Perl identifier is a name used to identify a variable, function, class, module, or other object.

A Perl variable name starts with either $, @ or % followed by zero or more letters, underscores, and digits (0 to 9).

Example: @abc=10;

Perl does not allow punctuation characters such as @, $, and % within identifiers.

Example:

$Manpower and $manpower are two different identifiers in Perl.

Page 15: My Perl Ppt

EVALUATION OF PERL: Readability:

Perl programming language is very hard to read which means it has poor readability because it contains lot of symbols like $,#,/ etc reading these all and remembering all these is quite difficult process. Hence PERL language has poor readability.

Writability:

Perl is a very forgiving language that allows for multiple forms of expression. That means that you can say something in various ways, as long as your syntax is correct.

Simple English language is used to develop a perl code

Hence, writable.

Cost:

As this language is free available or an open source language, it is cost efficient.

Reliability:

As Perl is available on all platform it works on all coditions hence it is reliable.

Page 16: My Perl Ppt

DATA TYPES:

Perl does not specify the types of variable.

It is loosely typed language. Where languages like c and java are strongly typed.

Types and Description:

Scalar − Scalars are simple variables. They are preceded by a dollar sign ($).

$xyz=20; A scalar is either a number, a string, or a reference. A reference is actually an address of a variable, which

we will see in the upcoming chapters. A file handle is used for reading the binary data from

a file into scalar variable.

Page 17: My Perl Ppt

Arrays − Arrays are ordered lists of scalars that you access with a numeric index which starts with 0. They are preceded by an "at" sign (@).

Hashes −Hashes are unordered sets of key/value pairs that you access using the keys as subscripts. They are preceded by a percent sign (%).

Page 18: My Perl Ppt

Data types Examples:

Here's an example: (Note scalar variables begin with an $)

$a="5.0"; # set up our variables

$b="5"; # # to the end of a line is a comment in perl

print "Are these variables equal as numbers? ",$a==$b,"\n";

print "Are the variables equal as strings? ",$a eq $b,"\n";

print "These variables are equal as strings\n" if($a eq $b);

print "These variables are equal numerically\n" if($a==$b);

Page 19: My Perl Ppt

VARIABLES:

List (one-dimensional array)

@memory = (16, 32, 48, 64); @people = (“Alice”, “Alex”, “Albert”); First element numbered 0 Single elements are scalar: $names[0] = “Fred”; How big is my list?

print “Number of people: “, scalar @people, “ \n”; (Cont..)

Page 20: My Perl Ppt

VARIABLES:

Hash (associative array) %var = (‘Nithish', 24, 'Kumar', 20);

print “\$data{‘nithish} = $data{‘nithish'}\n";

print "\$data{'Kumar'} = $data{'Kumar'}\n";

Single elements are scalar print $var{“name”}; $var{age}++;

How many elements are in my hash? @allkeys = keys(%var);

$num = @allkeys;

Page 21: My Perl Ppt

Variable interpolation:

It is the main feature in perl

Variable names are automatically replaced by the values whenever they appear in double coated strings.

Example:

$stud = “nithish”;

$marks = 95;

print “mark obtained by $stud is $marks\n”;

print ’marks obtained by $stud is $marks\n’;

OUTPUT:

Marks obtained by Nithish is 95

Marks obtained by $stud is $mark

Page 22: My Perl Ppt

Special Variables:

$& Stores the value which matched with pattern.

$_ The default input and pattern-searching space.

$' Stores the value which came after the pattern in the linevalue.

$” Stores the value which came before the pattern in the linevalue.

Page 23: My Perl Ppt

OPERATORS:

Math The usual suspects: + - * / %

$total = $subtotal * (1 + $tax / 100.0);

Exponentiation: ** $cube = $value ** 3;

$cuberoot = $value ** (1.0/3);

Bit-level Operations left-shift: << $val = $bits << 1;

right-shift: >> $val = $bits >> 8; (Cont..)

Page 24: My Perl Ppt

OPERATORS:

Assignments As usual: = += -= *= /= **= <<= >>=

$value *= 5;

$longword <<= 16;

Increment: ++

$counter++ ++$counter

Decrement: --

$num_tries-- --$num_tries

Logical (expressions) && And operator

| | Or operator

! Not operator (Cont..)

Page 25: My Perl Ppt

OPERATORS:

Perl operators are the same as in C and Java these are only good for numbers, but beware:

$b = "3" + "5";print $b, "\n"; # prints the number 8

if a string can be interpreted as a number given arithmetic operators, it will be

what is the value of $b?:$b = "3" + "five" + 6?

Perl semantics can be tricky to completely

understand (Cont..)

Page 26: My Perl Ppt

OPERATORS:

Boolean (against bits in each byte)

Usual operators: & |

Exclusive-or: ^

Bitwise Negation: ~

$picture = $backgnd & ~$mask | $image;

Boolean Assignment &= |= ^=

$picture &= $mask;

Page 27: My Perl Ppt

CONTROL STAMENTS:(if)

#!/usr/local/bin/perl

$a = 10;

# check the boolean condition using if statement

if( $a < 20 )

{

# if condition is true then print the following

printf "a is less than 20\n";

}

print "value of a is : $a\n";

Page 28: My Perl Ppt

CONTROL STATEMENTS: (if)

“if” statement - first style

if ($porridge_temp < 40) { print “too hot.\n”;

}elsif ($porridge_temp > 150) {

print “too cold.\n”;}else {

print “just right\n”;

(Cont..)

Page 29: My Perl Ppt

CONTROL STAMENTS:(if)

“if” statement - second style statement if condition;

print “\$index is $index” if $DEBUG;

Single statements only

Simple expressions only

“unless” is a reverse “if” statement unless condition;

print “millenium is here!” unless $year < 2000;

Page 30: My Perl Ppt

Looping STATEMENT:(while)

“while” loop

• while (condition) { code }

• #!/usr/local/bin/perl $a = 10;

• # while loop execution

• while( $a < 20 )

{

•printf "Value of a: $a\n";

• $a = $a + 1;

}

o/p: Value of a: 10…….Value of a: 19

Page 31: My Perl Ppt

LOOPING STATEMENTS: (for)

This statement takes a list of values and assigns them one at a time to a scalar variable, executing a block of code with each successive assignment. Eg: Foreach $var (list) {}.

for” loop - first style for (initial; condition; increment) { code }

for ($i=0; $i<10; $i++) {print “hello\n”;

} “for” loop - second style

for [variable] (range) { code }

for $name (@employees) {print “$name is an employee.\n”;

}

Page 32: My Perl Ppt

SWITCH STATEMENTS:

Perl needs no Switch (Case) statement.

Use if/else combinations instead

if (cond1) { … }elsif (cond2) { … }elsif…else…

This will be optimized at compile time

Page 33: My Perl Ppt

FUNCTIONS:

Calling a Subroutine(function) &subname; # no args, return value

&subname (args);

retval = &subname (args);

The “&” is optional so long as… subname is not a reserved word

subroutine was defined before being called

(Cont..)

Page 34: My Perl Ppt

FUNCTIONS:

Passing Arguments(parameter) Passes the value

Lists are expanded @a = (5,10,15);

@b = (20,25);&mysub(@a,@b);

this passes five arguments: 5,10,15,20,25

mysub can receive them as 5 scalars, or one array

(Cont..)

Page 35: My Perl Ppt

FUNCTIONS: (example1)

Examples sub good1 {

my($a,$b,$c) = @_;}&good1 (@triplet);

sub good2 { my(@a) = @_;}&good2 ($one, $two, $three);

(Cont..)

Page 36: My Perl Ppt

FUNCTIONS: (example2)

Examples sub good3 {

my($a,$b,@c) = @_;}&good3 ($name, $phone, @address);

sub bad1 { my(@a,$b) = @_;}

@a will absorb all args, $b will have nothing.

(Cont..)

Page 37: My Perl Ppt

Split and Join

Join does the exact opposite job as that of the split.

It takes a list and joins up all its values into a single scalar variable using the delimiter provided.

Eg $newlinevalue = join(@data);

Page 38: My Perl Ppt

Operator precedence of perl:Associativity Operators

left Terms and list operators (leftward)

left ->nonassoc ++ --

right **right ! ~ n + - (unary)left =~ !~left * / % xleft + - .left << >>

nonassoc named unary operatorsnonassoc < > <= >= lt gt le genonassoc == != <=> eq ne cmp

left &left |^left &&left ||

nonassoc .. ...right ?:

right = += -= *= etc. (assignment operators)

left , =>nonassoc List operators (rightward)

right notleft andleft or xor

Previous

Page 39: My Perl Ppt

Common mistakes done:

putting comma after filehandle in print statement using == instead of eq, and != instead of ne leaving $ off the front of a variable on th left side of an

assignment forgetting the & on a subroutine call leaving $ off of the loop variable of foreach using else if or elif instead of elsif forgetting trailing semicolon forgetting the @ or @ on the front of variables saying @foo[1] when you mean $foo[1]

Page 40: My Perl Ppt

ADVANTAGES In PERL, one can use system commands

Quick scripts, complex scripts

Parsing & restructuring data files

High-level programming Networking libraries

Graphics libraries

Database interface libraries

We can print stuff on screen

Perl does not require you to treat everything as an object.Perl does not force you to use inheritance as the main mechanism for code reuse.Perl makes using composition for code reuse very straightforward.Perl's lexical scope and closures facilitate encapsulation.Perl allows multiple inheritance.

Page 41: My Perl Ppt

DISADVANTAGES:

It has poor readability

Impossible to maintain the code

Sytax of perl has less importance. Hence, it is non- trivial.

This programming language is overloaded.

Page 42: My Perl Ppt

Questions: What is perl?

a)Scripting language

b)Report language

c)a&b

d)None

What is file handle used for?

a)Reading the binary data from a file into scalar variable.

b) Finding where the file is on the disc

c)Deleting or moving the data

Page 43: My Perl Ppt

Perl was first invented in?

a) 1987

b) 1990

c) 1989

d) 1999

which of the following is used in perl?

a)Else if

b)Elseif

c)Elsif

d)elif

Page 44: My Perl Ppt

When you create a variable,you may assume it starts off containing :

a) 1

b) The Boolean values “false”

c) A null string (0 arithmetically)

Page 45: My Perl Ppt

Thank you