Perlは..を許可します
$a = "fee";
$result = 1 + f($a) ; # invokes f with the argument $a
しかし、許可しない、またはむしろ私が望むことをしません...
s/((fee)|(fie)|(foe)|(foo))/f($1)/ ; # does not invoke f with the argument $1
望ましい最終結果は、正規表現が一致したものに連動した置換を実行する方法です。
私は書く必要がありますか
sub lala {
my $haha = shift;
return $haha . $haha;
}
my $a = "the giant says foe" ;
$a =~ m/((fee)|(fie)|(foe)|(foo))/;
my $result = lala($1);
$a =~ s/$1/$result/;
print "$a\n";