例
sub foo {
my $foo = shift;
for ($foo) {
s/abc/abc/ and return 1;
s/def/def/ and return 2;
s/ghi/ghi/ and return 3;
}
}
fooサブルーチンは引数の文字列に'abc'が含まれれば1を、
'def'が含まれれば2を、
'ghi'が含まれれば3を返します。
解説
-
for文の()の中の配列の要素が各ループごとに$_に入ります- スカラ値をリストコンテキストで評価すると、そのスカラ値を唯一の要素に持つリストになります
-
s///(などの)演算子は指定がなければ$_に対し適用されます -
s///はマッチングした場合にtruthyを、そうでない場合にfalsyを返します - Perlでは
andは短絡評価します- つまり、
andの左辺がfalsyならば右辺は評価されません
- つまり、