• # beuh

    Posté par . En réponse au message Invoquer une fonction se situant dans une table de hashage déclaré dans un autre paquetage. Évalué à 2.

    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 };
    -=-=---=-=---=-=---=-=---=-=---=-=--