Switch.pm implements a switch statement for Perl, which works something like the switch statement you'd find in C and other languages. Switch.pm is intended to supplement the standard Perl syntax with two control statements: switch and case. switch takes a single scalar argument of any type, specified in parentheses, that is then stored in a localized control variable. It is followed by any number of Perl statements (in a block) that are checked to meet various conditions, or cases, of the switch. case takes a single scalar argument, variable, or regular expression as an argument. If case finds a match, it will take the action that's specified between the braces on the right. Switch.pm is shipped with the Perl 5.8 source kit.
For example:
#!/usr/local/bin/perl -w use Switch; switch($some_value) { case 1 { print "number 1" } case "a" { print "string a" } case [1..10,42] { print "number in list" } case (@array) { print "number in list" } case /\w+/ { print "pattern" } case qr/\w+/ { print "pattern" } case (%hash) { print "entry in hash" } case (\%hash) { print "entry in hash" } case (\&sub) { print "arg to subroutine" } else { print "Get off my case." } }
Copyright © 2002 O'Reilly & Associates. All rights reserved.