Conditional Statements: ifelse and unless


Conditional Statements: if/else and unless

Perl offers two conditional statements, if and unless, which function opposite one another. if enables you to execute a block of code only if certain conditions are met so that you can control the flow of logic through your program. Conversely, unless performs the statements when certain conditions are not met.

The following sections explain and demonstrate how to use these conditional statements when writing scripts for Linux.

if

The syntax of the Perl if/else structure is as follows:

if (condition) {   statement or block of code } elsif (condition) {   statement or block of code } else {   statement or block of code } 


condition can be a statement that returns a true or false value.

Truth is defined in Perl in a way that might be unfamiliar to you, so be careful. Everything in Perl is true except 0 (the digit zero), "0" (the string containing the number 0), "" (the empty string), and an undefined value. Note that even the string "00" is a true value because it is not one of the four false cases.

The statement or block of code is executed if the test condition returns a true value.

For example, Listing 27.3 uses the if/else structure and shows conditional statements using the eq string comparison operator.

Listing 27.3. if/elsif/else

if  ($favorite eq "chocolate") {       print "I like chocolate too.\n"; } elsif ($favorite eq "spinach") {       print "Oh, I don't like spinach.\n"; } else {      print "Your favorite food is $favorite.\n"; } 

unless

unless works just like if, only backward. unless performs a statement or block if a condition is false:

unless ($name eq "Rich")        {   print "Go away, you're not allowed in here!\n"; } 


Note

You can restate the preceding example in more natural language like this:

print "Go away!\n" unless $name eq "Rich";





Ubuntu Unleashed
Ubuntu Unleashed 2011 Edition: Covering 10.10 and 11.04 (6th Edition)
ISBN: 0672333449
EAN: 2147483647
Year: 2006
Pages: 318

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net