The elsif Clause
Every so often, you may need to check a number of conditional
expressions, one after another, to see which one of them is true. This
can be done with the if control
structure’s elsif clause, as in this
example:
if ( ! defined $dino) {
print "The value is undef.\n";
} elsif ($dino =~ /^-?\d+\.?$/) {
print "The value is an integer.\n";
} elsif ($dino =~ /^-?\d*\.\d+$/) {
print "The value is a _simple_ floating-point number.\n";
} elsif ($dino eq '') {
print "The value is the empty string.\n";
} else {
print "The value is the string '$dino'.\n";
}Perl will test the conditional expressions one after another. When
one succeeds, the corresponding block of code is executed, and then the
whole control structure is done,[*] and execution goes on to the rest of the program. If none
has succeeded, the else block at the
end is executed. (Of course, the else
clause is still optional, but, in this case, it’s often a good idea to
include it.)
There’s no limit to the number of elsif clauses, but remember that Perl has to
evaluate the first 99 tests before it can get to the 100th. If you’ll
have more than half a dozen elsifs,
you should consider whether there’s a more efficient way to write it.
The Perl FAQ (see the perlfaq manpage) has a number
of suggestions for emulating the “case” or “switch” statements of other languages, and users
of Perl 5.10 or later can use given-when, described in Chapter 15, as an alternative.
You may have noticed by this point that the keyword is spelled ...