Perlでswitch文

Perlでswitch, case文を使おうと思って調べると、そんなものはないらしい。if文で代用せよ、とある. 代用っていうのか、それは. と思っていたら, Switchモジュールが公開されているらしい.

use Switch;

switch ($val) {
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" }
else { print "previous case not true" }
}

こちらを使う方が良いのかな. Perl5かららしい.

http://perldoc.jp/docs/modules/Switch-2.09/Switch.pod