Akihiro's Programmer Blog

Technology Notes for Personal

「初めてのPerl」 第十五章

第十五章から。


第十五章 スマートマッチとgiven-when

内容


用語集

用語 説明
スマートマッチ オペランドの種類と順番によって最善な比較処理を行う
ダムマッチ いつもの比較演算子を使った比較処理。ダム=賢くないという意味。


Point

スマートマッチ
# スマートマッチ演算子を使うとプログラム側で良い感じに比較処理をしてくれる
my $number = 1;
$number ~~ 1;    # ==と同等

my $string = "hoge";
$string ~~ "hoge";    # eqと同等

$string ~~ /hoge/;    # =~と同等

# ハッシュや配列に対しても様々な処理を行う
# オペランドの種類と順番によって処理が異なる


given文
# Cで言うswhich文のようなものを想像すると良い
my $string = "hoge";
given ($string) {
    when ('hoge') { say "hoge"    }
    default       { say "default" }
}

# 上記のスマートマッチも使うことが出来る
given ($string) {
    when ($_ ~~ 'hoge') { say "hoge"    }
    default             { say "default" }
}

# whenブロックには何も明示しなければbreak処理される
# 次のwhen条件に進めるにはcontinueを置くと良い

# 配列の要素を順番に処理していきたい場合には次のような書き方もできる
my @string = qw/hoge fuga piyo/;
foreach (@string) {
    when ('hoge') { say 'hoge'    }
    when ('fuga') { say 'fuga'    }
    when ('piyo') { say 'piyo'    }
    default       { say 'default' }
}


次回は

次回は第十六章から。