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 2004
0
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.

--
Mon JID est yannbng@jabber.fr
> Lire le message (2 commentaires, moyenne: 2).  

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.

beuh

Posté par gc (page perso, ) le 04/10/2004 à 13:53. (lien). É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 };
-=-=---=-=---=-=---=-=---=-=---=-=--

  • [^]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