Retourner au contenu associé (entrée de forum : Invoquer une fonction se situant dans une table de hashage déclaré dans un autre paquetage)
Posté par gc le 04 octobre 2004 à 15:53. En réponse au message Invoquer une fonction se situant dans une table de hashage déclaré dans un autre paquetage. Évalué à 2.
AltStyle によって変換されたページ (->オリジナル) / アドレス: モード: デフォルト 音声ブラウザ ルビ付き 配色反転 文字拡大 モバイル
# beuh
Posté par gc . En réponse au message Invoquer une fonction se situant dans une table de hashage déclaré dans un autre paquetage. É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 };
-=-=---=-=---=-=---=-=---=-=---=-=--