Perl permet ...Existe-t-il un idiome Perl qui est l'équivalent fonctionnel de l'appel d'un sous-programme depuis l'opérateur de substitution?
$a = "fee";
$result = 1 + f($a) ; # invokes f with the argument $a
mais autorise pas, ou ne fait pas plutôt ce que je veux ...
s/((fee)|(fie)|(foe)|(foo))/f($1)/ ; # does not invoke f with the argument $1
La-résultat final souhaité est un moyen d'effectuer une substitution adaptée hors de ce que l'expression rationnelle correspondait.
Dois-je écrire
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";
Merci! Cela économise beaucoup d'usure sur la touche point-virgule. –