Retourner aux forums || Retourner au forum Programmation.perl
Programmation.perl : Invoquer une fonction se situant dans une table de hashage déclaré dans un autre paquetage
Posté par Yann012 () le 03 octobre 2004Le 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.
Mon JID est yannbng@jabber.fr
beuh
ce serait un poil mieux que tu postes ton code pour qu'on puisse voir et tester le problème !
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 (page perso, ) le 04/10/2004 à 13:54. (lien). Évalué à 2.rah /me sux
-=-=---=-=---=-=---=-=---=-=---=-=--
package attaques;
sub fooimpl {
print "in foo, params: @_\n";
}
our $list = { foo => \&fooimpl };
-=-=---=-=---=-=---=-=---=-=---=-=--
Revenir en haut de page || Retourner aux forums || Retourner au forum Programmation.perl



Cette discussion est archivée, il n'est plus possible de laisser des commentaires.
Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.