Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Paul Gaborit
À (at) Tue, 18 Sep 2007 16:51:40 +0200, paul POULAIN écrivait (wrote):
J'ai un problème qui me semble pour le moins bizarre...
soit un package A.pm, et un package B.pm
B.pm contient "use A;"
et fait appel à une fonction ModReserveStatus qui est dans A, et qui est bien exportée : @EXPORT = qw( ... &ModReserveStatus ... );
Sauf que, lorsque le script s'exécute, il dit "Undefined subroutine &B::ModReserveStatus"
Il n'y a évidemment pas ModReserveStatus dans @EXPORT de B.pm, je ne comprends pas bien ce qui se passe...
Sans voir plus de code, on peut imaginer plein de raisons... La première qui me vient à l'esprit est qu'il manque peut-être les lignes suivantes (selon la doc de 'Exporter') dans le module A :
require Exporter; @ISA = qw(Exporter);
Une autre raison : le fichier A.pm lu par Perl n'est pas celui que vous croyez...
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
À (at) Tue, 18 Sep 2007 16:51:40 +0200,
paul POULAIN <paul.poulain_nospam@free.fr.invalid> écrivait (wrote):
J'ai un problème qui me semble pour le moins bizarre...
soit un package A.pm, et un package B.pm
B.pm contient "use A;"
et fait appel à une fonction ModReserveStatus qui est dans A, et qui est
bien exportée :
@EXPORT = qw(
...
&ModReserveStatus
...
);
Sauf que, lorsque le script s'exécute, il dit "Undefined subroutine
&B::ModReserveStatus"
Il n'y a évidemment pas ModReserveStatus dans @EXPORT de B.pm, je ne
comprends pas bien ce qui se passe...
Sans voir plus de code, on peut imaginer plein de raisons... La
première qui me vient à l'esprit est qu'il manque peut-être les lignes
suivantes (selon la doc de 'Exporter') dans le module A :
require Exporter;
@ISA = qw(Exporter);
Une autre raison : le fichier A.pm lu par Perl n'est pas celui que
vous croyez...
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>
À (at) Tue, 18 Sep 2007 16:51:40 +0200, paul POULAIN écrivait (wrote):
J'ai un problème qui me semble pour le moins bizarre...
soit un package A.pm, et un package B.pm
B.pm contient "use A;"
et fait appel à une fonction ModReserveStatus qui est dans A, et qui est bien exportée : @EXPORT = qw( ... &ModReserveStatus ... );
Sauf que, lorsque le script s'exécute, il dit "Undefined subroutine &B::ModReserveStatus"
Il n'y a évidemment pas ModReserveStatus dans @EXPORT de B.pm, je ne comprends pas bien ce qui se passe...
Sans voir plus de code, on peut imaginer plein de raisons... La première qui me vient à l'esprit est qu'il manque peut-être les lignes suivantes (selon la doc de 'Exporter') dans le module A :
require Exporter; @ISA = qw(Exporter);
Une autre raison : le fichier A.pm lu par Perl n'est pas celui que vous croyez...
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
paul POULAIN
Paul Gaborit wrote:
Sans voir plus de code, on peut imaginer plein de raisons... La première qui me vient à l'esprit est qu'il manque peut-être les lignes suivantes (selon la doc de 'Exporter') dans le module A :
require Exporter; ca , ca y est
@ISA = qw(Exporter); ca aussi...
Une autre raison : le fichier A.pm lu par Perl n'est pas celui que vous croyez...
Tiens, une explication possible : dans B.pm, il y a 2 fois "use A;". Est-ce que ca peut expliquer le problème ? -- Paul
Paul Gaborit wrote:
Sans voir plus de code, on peut imaginer plein de raisons... La
première qui me vient à l'esprit est qu'il manque peut-être les lignes
suivantes (selon la doc de 'Exporter') dans le module A :
require Exporter;
ca , ca y est
@ISA = qw(Exporter);
ca aussi...
Une autre raison : le fichier A.pm lu par Perl n'est pas celui que
vous croyez...
Tiens, une explication possible : dans B.pm, il y a 2 fois "use A;". Est-ce
que ca peut expliquer le problème ?
--
Paul
Sans voir plus de code, on peut imaginer plein de raisons... La première qui me vient à l'esprit est qu'il manque peut-être les lignes suivantes (selon la doc de 'Exporter') dans le module A :
require Exporter; ca , ca y est
@ISA = qw(Exporter); ca aussi...
Une autre raison : le fichier A.pm lu par Perl n'est pas celui que vous croyez...
Tiens, une explication possible : dans B.pm, il y a 2 fois "use A;". Est-ce que ca peut expliquer le problème ? -- Paul
Paul Gaborit
À (at) Tue, 18 Sep 2007 18:08:51 +0200, paul POULAIN écrivait (wrote):
Paul Gaborit wrote:
Sans voir plus de code, on peut imaginer plein de raisons... La première qui me vient à l'esprit est qu'il manque peut-être les lignes suivantes (selon la doc de 'Exporter') dans le module A :
require Exporter; ca , ca y est
@ISA = qw(Exporter); ca aussi...
Bon. Mauvaise pioche. Il faut que je change ma boule de cristal. ;-)
Une autre raison : le fichier A.pm lu par Perl n'est pas celui que vous croyez...
Tiens, une explication possible : dans B.pm, il y a 2 fois "use A;". Est-ce que ca peut expliquer le problème ?
Non (le deuxième 'use' est une simple no-op).
Pas de warnings ? Avez-vous vérifiez partout le nom de la méthode ? Avez-vous tenter de supprimer tout le code inutile pour essayer d'isoler le bug ? Pouvez-vous nous monter le résultat de cette isolation ?
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
À (at) Tue, 18 Sep 2007 18:08:51 +0200,
paul POULAIN <paul.poulain_nospam@free.fr.invalid> écrivait (wrote):
Paul Gaborit wrote:
Sans voir plus de code, on peut imaginer plein de raisons... La
première qui me vient à l'esprit est qu'il manque peut-être les lignes
suivantes (selon la doc de 'Exporter') dans le module A :
require Exporter;
ca , ca y est
@ISA = qw(Exporter);
ca aussi...
Bon. Mauvaise pioche. Il faut que je change ma boule de cristal. ;-)
Une autre raison : le fichier A.pm lu par Perl n'est pas celui que
vous croyez...
Tiens, une explication possible : dans B.pm, il y a 2 fois "use A;". Est-ce
que ca peut expliquer le problème ?
Non (le deuxième 'use' est une simple no-op).
Pas de warnings ? Avez-vous vérifiez partout le nom de la méthode ?
Avez-vous tenter de supprimer tout le code inutile pour essayer
d'isoler le bug ? Pouvez-vous nous monter le résultat de cette
isolation ?
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>
À (at) Tue, 18 Sep 2007 18:08:51 +0200, paul POULAIN écrivait (wrote):
Paul Gaborit wrote:
Sans voir plus de code, on peut imaginer plein de raisons... La première qui me vient à l'esprit est qu'il manque peut-être les lignes suivantes (selon la doc de 'Exporter') dans le module A :
require Exporter; ca , ca y est
@ISA = qw(Exporter); ca aussi...
Bon. Mauvaise pioche. Il faut que je change ma boule de cristal. ;-)
Une autre raison : le fichier A.pm lu par Perl n'est pas celui que vous croyez...
Tiens, une explication possible : dans B.pm, il y a 2 fois "use A;". Est-ce que ca peut expliquer le problème ?
Non (le deuxième 'use' est une simple no-op).
Pas de warnings ? Avez-vous vérifiez partout le nom de la méthode ? Avez-vous tenter de supprimer tout le code inutile pour essayer d'isoler le bug ? Pouvez-vous nous monter le résultat de cette isolation ?
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>