Perlの正規表現 s///でeオプションを使ってみる(evalオプション)
$seasonがautumnだと、it is cool!というサブルーチン。
autumn意外だと?になってしまう。
全然s///eする必然性がないけど、うまいサンプルが思いつかなかったので。
my $season = 'autumn'; my $say = temperature($season); print $say; # it is cool! sub temperature { my $arg = shift; my $line = 'it is #'; $line =~ s{#} { if ($arg eq 'autumn') { 'cool!'; } else { '?'; } }ge; return $line; }
感想
Tengのソースコードをみていたら、この書き方が使われていた。 今のところどうやって活用するのかわからないんだけど、便利そう。