例
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ならば右辺は評価されません
- つまり、