perl control flow
Download
Skip this Video
Download Presentation
Perl Control Flow

Loading in 2 Seconds...

play fullscreen
1 / 17

Perl Control Flow - PowerPoint PPT Presentation


  • 86 Views
  • Uploaded on

Perl Control Flow. Learning Objectives: To understand the commands available for control flow in Perl To learn some useful operators in Perl. “ if “ statement. The Perl if statement works almost the same as in C++: #!/usr/local/bin/perl5 -w $user = `whoami`; chomp($user);

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Perl Control Flow' - ugo


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
perl control flow

Perl Control Flow

Learning Objectives:

To understand the commands available for control flow in Perl

To learn some useful operators in Perl

if statement
“ if “ statement
  • The Perl if statement works almost

the same as in C++:

#!/usr/local/bin/perl5 -w

$user = `whoami`;

chomp($user);

if($user eq "clinton"){

print "Hi Bill!\n";

} … if (-e “datafile”) {…} # if file exists…

  • The eq operator compares two strings, and returns true if they are equal (use == for numeric comparisons).
  • The curly braces { } are always required in Perl (even if only one statement inside, unlike C++). This avoids the “dangling else” problem.
if elsif else statement
“ if … elsif … else “ statement
  • You can also handle a list of cases:

#!/usr/local/bin/perl5 -w

$users = `who | wc -l`;

chomp($users);

if ($users > 4){

print "Heavy load!\n";

}

elsif ($users > 1){

print "Medium load\n";

}

else {

print "Just me!\n";

}

relational operators
Relational Operators
  • Perl’s numeric and string comparison operators:

Comparison Numeric String

Equal == eq

Not equal != ne

Less than < lt

Greater than > gt

Less than or equal to <= le

Greater than or equal to >= ge

truth in perl
Truth in Perl
  • Truth is flexible in Perl:
    • Expressions that evaluate to false

0 # traditional false value

"" # the null string

"0" # only non-zero length false string

    • Some examples of truth:

1 # traditional true value

684 # non-zero numerical values are true

" " # whitespace is true

"hello" # strings are true

"00" # a string

and or not
And, Or, Not
  • 1represents true, and 0 false (as in C++).
  • You can also combine and negate expressions with logical and (&&), logical or (||), and not (!) just like in C++:

#!/usr/local/bin/perl5 -w

chomp($user = `whoami`);

chomp($nme = `who | grep $user | wc -l`);

chomp($nusers = `who | wc -l`);

if($nusers - $nme && $user ne "clinton"){

print "Someone else is logged in!\n";

}

else{

print "All is well!\n";

}

while statement
“ while“ statement
  • The whilestatement loops indefinitely, while the condition is true, such as a user-controlled condition:

#!/usr/local/bin/perl5 -w

$resp = "no";

while($resp ne "yes"){

print "Wakeup [yes/no]? ";

chomp($resp = <STDIN>);

}

$ test11

Wakeup [yes/no]? no

Wakeup [yes/no]? y

Wakeup [yes/no]? yes

$

looping using for 1
Looping using for (1)
  • for can be used as in C++ to do incrementing loops:

$ cat fac

#!/usr/local/bin/perl5 -w

print "Enter number: ";

$n = <STDIN>;

$fac = 1;

for($i=1; $i<=$n; $i++){

$fac *= $i;

}

print "The factorial of $n is $fac\n";

$ fac

Enter number: 5

The factorial of 5

is 120

$

Don’t forget to chomp $n

looping using for 2
Looping using for (2)
  • Withchomp():

$ cat fac

#!/usr/local/bin/perl5 -w

print "Enter number: ";

chomp($n = <STDIN>);

$fac = 1;

for($i=1; $i<=$n; $i++){

$fac *= $i;

}

print "The factorial of $n is $fac\n";

$ fac

Enter number: 5

The factorial of 5 is 120

$

last command
“last “ command
  • The lastcommand works like the C++ break command, breaking out of the innermost loop :

$ cat test12

#!/usr/local/bin/perl5 -w

while(1){

print "Wakeup [yes/no]? ";

chomp($resp = <STDIN>);

if($resp eq "yes"){

last;

}

}

$ test12

Wakeup [yes/no]? no

Wakeup [yes/no]? y

Wakeup [yes/no]? yes

$

string operators 1
String Operators (1)
  • Concatenate strings with the “.” operator (a period).

$ cat string

#!/usr/local/bin/perl5 -w

$name = "Bill" . "Clinton";

print "$name\n";

print "Bill"."Gates"."\n";

$ string

BillClinton

BillGates

$

string operators 2
String Operators (2)
  • The string repetition operator x allows you to repeat a string several times:

$ cat string1

#!/usr/local/bin/perl5 -w

$name = "Bill"x3;

print "$name\n";

$n = 4;

print "Bill" x 2 . "Gates" x $n . "\n";

print 5;

print "\n";

$test = ($n+1) x 4;

print "$test\n";

$ string2

BillBillBill

BillBillGatesGatesGatesGates

5

5555

$

variable interpolation 1
Variable Interpolation (1)
  • Putting variables inside double quotes is called variable interpolation. We have seen many examples of this.
  • The variable name will be the longest possible variable name that makes sense at that part of the string.
  • Enclose the variable in a pair of curly braces if needed to override this.
variable interpolation 2
Variable Interpolation (2)

$ cat bill1

#!/usr/local/bin/perl5 -w

$bill = "trouble";

$billgates = "cheap";

print "Bill is $bill\n";

print "Bill is $billgates\n";

print "Bill is ${bill}gates\n";

print "Bill is "."$bill\n";

print "Bill is "."$bill"."\n";

$ bill1

Bill is trouble

Bill is cheap

Bill is troublegates

Bill is trouble

Bill is trouble

$

exponentiation
Exponentiation
  • Perl has an exponentiation operator ** unlike C++:

$ cat exp

#!/usr/local/bin/perl5 -w

$n = 2;

$m = 3;

$result = $n ** $m;

print "$n raised to the $m power is $result\n";

$ exp

2 raised to the 3 power is 8

$

operator precedence
Operator Precedence
  • Operator precedence is basically the same as in C++.
  • As in C++, you can use parentheses to override precedence, and to clarify the grouping.

$ cat prec

#!/usr/local/bin/perl5 -w

$n = 2;

$m = 3;

$result = $n + 1 * $m;

print "$n plus one times $m is $result\n";

$result = ($n + 1) * $m;

print "$n plus one times $m is $result\n";

$ prec

2 plus one times 3 is 5

$ prec

2 plus one times 3 is 9

write a program to compute the sum
Write a Program to compute the Sum

#!/usr/local/bin/perl5 –w

$sum=0;

While (...) {

...

ad