
-----------------------------------
wtd
Fri Sep 23, 2005 1:25 am

[Perl5-tut] Perl Intro: Conditionals
-----------------------------------
If

This looks pretty much like most languages.  A notable differences is that the curly braces are required.  There is no "shortcut" syntax.

if ($foo == 42)
{
   print "Hello\n";
}

Elsif and else

As in other languages, there are fallback clauses.

if ($foo == 42)
{
   print "Hello\n";
}
elsif ($bar == 38)
{
   print "Yo\n";
}
elsif ($baz == 56)
{
   print "Wooble!\n";
}
else
{
   print "Ninja!!!\n";
}

Unless

"if" has a counterpart.  It's called unless.

For instance, instead of:

if ($foo != 42)
{
   print "Hello\n";
}

We can write:

unless ($foo == 42)
{
   print "Hello\n";
}

Postfix

For very simple tests, we can use "if" and "unless" in a postfix form.

print "Hello\n" unless $foo == 42;

The ternary operator

This also functions pretty much the same way it does in other languages.

$foo == 42 ? "Hello" : "World";

If the test in front of the question mark is true, then the first expression is evaluated.  If not, the second expression is evaluated.  The expressions are separated by a colon.

Comparison operators

Strings and numbers use different comparison operators in Perl5.

For numbers, we can use the classic:  ==, !=, , =, and for a three way comparison: .

For strings, the corresponding operators are:  eq, ne, lt, gt, le, ge, and cmp.
