言語によってswitch文の書き方がちがくて使いにくい。
忘れるとアレなのでメモ。
intとかめんどいので必要部分のみ
複数caseを用いた場合の話。
// C言語
switch(cmd) {
case 1:
case 2:
printf(“1 or 2\n”); break;
default:
printf(“not 1 or 2\n”); break;
}
// perl 5.8.0~
use Switch;
switch($cmd) {
case (sub { ($cmd eq “1”) || ($cmd eq “2”) } ); {
print “1 or 2\n”;
}
else {
print “not 1 or 2\n”;
}
// Perl 5.10.0~ or Perl6
use feature ‘switch’; #5.10でperl6の機能を使うためのfeature
use switch; #perl6 この書き方は正確じゃないかも
given ($cmd) {
when (“1” || “2”) {
print “1 or 2\n”;
}
default {
print “not 1 or 2\n”;
}
perl 5.8.0~switch文が標準で使えるようになったので試したら複数caseな書き方はダメみたい
perl 6でgiven whenというswitch文と同じような機能が実装されるのでそれなら大丈夫っぽい
perl5でswitch文を使って複数caseを書くのはまだ不便っぽい
従来どおりSWITCH:を使った似非switch文かif-elsifでどうにかしたほうがいいっぽい?