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.
Forum Programmation.perl Invoquer une fonction se situant dans une table de hashage déclaré dans un autre paquetage
Posté par Yann012 .
Étiquettes :
aucune
3
oct.
2004
# beuh
Posté par gc . É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 . É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.