Switch

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." }
}

Get Perl in a Nutshell, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.