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";