Lorsque je l'appelle depuis un autre package :
C4::Context->set_userenv($bornum,$userid,$cardnumber,$firstname,$surname
$branchcode,$userflags);
Je vois dans le warn que le 1er paramètre ($usernum donc) contient
"C4::Context" au lieu du 1er paramètre passé.
$userid contient ensuite le 1er paramètre...
A quoi cela peut-il être dû ?
PS : la fonction n'est pas exporté explicitement, mais je ne vois pas
pourquoi cela aurait un effet. Bon, maintenant, je me mélange parfois un
peu les pinceaux dans les packages, malgré les 2 bouquins d'Oreilly à
portée de main :-(
--
Paul
Lorsque je l'appelle depuis un autre package : C4::Context->set_userenv($bornum,$userid,$cardnumber,$firstname,$surname $branchcode,$userflags);
Je vois dans le warn que le 1er paramètre ($usernum donc) contient "C4::Context" au lieu du 1er paramètre passé. $userid contient ensuite le 1er paramètre...
A quoi cela peut-il être dû ?
Vous utilisez la syntaxe d'appel à une méthode de classe alors que vous voulez appeler une fonction !
ça marchera comme vous le souhaitez. C'est la syntaxe d'appel à une fonction d'un package.
Lorsqu'on utilise la syntaxe d'appel à une méthode (donc avec '->' au lieu de '::'), le premier paramètre reçu (et passé implicitement) est toujours le nom de la classe (méthode de classe) ou l'objet lui-même (méthode d'objet).
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
À (at) Tue, 26 Jul 2005 14:16:37 +0200,
paul POULAIN <paul.poulain_nospam@free.fr.invalid> écrivait (wrote):
Dans un package appelé C4::Context, j'ai la fonction suivante :
Lorsque je l'appelle depuis un autre package :
C4::Context->set_userenv($bornum,$userid,$cardnumber,$firstname,$surname
$branchcode,$userflags);
Je vois dans le warn que le 1er paramètre ($usernum donc) contient
"C4::Context" au lieu du 1er paramètre passé.
$userid contient ensuite le 1er paramètre...
A quoi cela peut-il être dû ?
Vous utilisez la syntaxe d'appel à une méthode de classe alors que
vous voulez appeler une fonction !
ça marchera comme vous le souhaitez. C'est la syntaxe d'appel à une
fonction d'un package.
Lorsqu'on utilise la syntaxe d'appel à une méthode (donc avec '->' au
lieu de '::'), le premier paramètre reçu (et passé implicitement) est
toujours le nom de la classe (méthode de classe) ou l'objet lui-même
(méthode d'objet).
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>
Lorsque je l'appelle depuis un autre package : C4::Context->set_userenv($bornum,$userid,$cardnumber,$firstname,$surname $branchcode,$userflags);
Je vois dans le warn que le 1er paramètre ($usernum donc) contient "C4::Context" au lieu du 1er paramètre passé. $userid contient ensuite le 1er paramètre...
A quoi cela peut-il être dû ?
Vous utilisez la syntaxe d'appel à une méthode de classe alors que vous voulez appeler une fonction !
ça marchera comme vous le souhaitez. C'est la syntaxe d'appel à une fonction d'un package.
Lorsqu'on utilise la syntaxe d'appel à une méthode (donc avec '->' au lieu de '::'), le premier paramètre reçu (et passé implicitement) est toujours le nom de la classe (méthode de classe) ou l'objet lui-même (méthode d'objet).
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
paul POULAIN
Paul Gaborit wrote:
Vous utilisez la syntaxe d'appel à une méthode de classe alors que vous voulez appeler une fonction !
Paul se sent tout confus... -- Paul
Paul Gaborit wrote:
Vous utilisez la syntaxe d'appel à une méthode de classe alors que
vous voulez appeler une fonction !