Perl control flow
Download
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