2017-09-06 15 views
0

でswitchステートメント内のグループの例に、私はグループに似た例実施を希望コードPerlの

use Switch; 

my $var1x = "one"; 

switch ($var1x) { 
    case "one" { print "Why so small?\n"} 
    case "two" { print "Why so small?\n"} 
    case "three" { print "That is ok.\n"} 
    case "four" { print "That is ok.\n"} 
} 

を考える方法。どのように適切にPerlでそれを書くためにどのような推奨事項?

+2

'ケースQR/^ 1 | 2つの\ Z /'または 'ケース[QW(1〜2)]' => https://metacpan.org/pod/Switch#SYNOPSIS –

+4

注意: 'あり間違いなく深刻なバグは、https://metacpan.org/pod/Switch#BUGSからこのファンキーなコードのどこかに潜んでいます – toolic

答えて

4

古い、遅いSwitchモジュールを使用しないでください。

通常、CODEREFハッシュで解決されます。

my $var1x = "one"; 

my $is_ok  = sub { print "That is ok.\n"}; 
my $why_small = sub { print "Why so small?\n" }; 

my %switch = (
    one => $why_small, 
    two => $why_small, 
    three => $is_ok, 
    four => $is_ok, 
    ten => sub { print "Unbelievable!\n"; }, 
); 

$switch{$var1x}->();