Comment invoque-t-on une fonction située dans une table de hashage déclarée dans un autre paquetage?
Le truc qui merde le moins, c'est :
$attaques::list->{$natt}->(\$lanceur,\$preneur);
sachant que
$attaques::list->{$natt}(\$lanceur,\$preneur); donne le même msg d'erreur.
list est bien délcaré avec our.
# beuh
Posté par gc (site web personnel) . Évalué à 2.
avec mon code suivant les deux appels marchent.
-=-=---=-=---=-=---=-=---=-=---=-=--
use attaques;
my $natt = 'foo';
print "appel1\n";
$attaques::list->{$natt}->(\$lanceur,\$preneur);
print "appel2\n";
$attaques::list->{$natt}(\$lanceur,\$preneur);
-=-=---=-=---=-=---=-=---=-=---=-=--
-=-=---=-=---=-=---=-=---=-=---=-=--
package attaques;
our $list = { foo => sub { print "in foo, params: @_\n" } };
-=-=---=-=---=-=---=-=---=-=---=-=--
si tu ne peux/souhaites par utiliser de fonction anonyme dans le package, tu peux faire :
-=-=---=-=---=-=---=-=---=-=---=-=--
package attaques;
sub fooimpl {
&nsp;&nsp;&nsp;&nsp;print "in foo, params: @_\n";
}
our $list = { foo => \&fooimpl };
-=-=---=-=---=-=---=-=---=-=---=-=--
[^] # Re: beuh
Posté par gc (site web personnel) . Évalué à 2.
-=-=---=-=---=-=---=-=---=-=---=-=--
package attaques;
sub fooimpl {
print "in foo, params: @_\n";
}
our $list = { foo => \&fooimpl };
-=-=---=-=---=-=---=-=---=-=---=-=--
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.