Comment est-ce que j'écrirais une fonction qui accepte quelque chose comme la fonction de carte fait?Comment puis-je transmettre une fonction à un sous-Perl?
Exemple:
$func = sub { print $_[0], "hi\n" };
&something($f);
sub something
{
my $func = shift;
for ($i = 0; $i < 5; $i++)
{ $func->($i); }
}
fonctionne très bien.
mais si je l'ai fait
&something({ print $_[0], "hi\n" });
il ne sera pas le travail et dit func est une référence non définie.
Donc ma question serait comment j'écrirais une fonction qui accepte des paramètres comme la fonction de carte de Perls?
map { s/a/b/g } @somelist;
+1. J'aime l'idée de localiser $ _ avec l'instruction "for" - permet aux fonctions 1-arg d'être belles et concises. (Et je suppose que vous pourriez "local ($ a, $ b);" pour 2-arg funcrefs a la sort().) –