Bonjour,
J'utilise Perl v5.16.3 sous Linux.
Voilà mon souci : J'ai un script A.pl qui appelle via 'use' les modules suivants :
use Date::Format;
use REST::Client;
use MIME::Base64;
use JSON;
use Data:umper;
use IO::Socket::SSL qw( SSL_VERIFY_NONE );
use Math::Calc::Units qw(calc readable convert equal);
use Time:iece::ISO;
Je vais devoir créer plusieurs script similaires à A.pl, mais je n'ai pas envie de devoir rappeler tous ces modules dans chacun de scripts.
Aussi j'ai crée un fichier mymodule.pm contenant :
__________________________________________________
package mymodule;
use Date::Format;
use REST::Client;
use MIME::Base64;
use JSON;
use Data:umper;
use IO::Socket::SSL qw( SSL_VERIFY_NONE );
use Math::Calc::Units qw(calc readable convert equal);
use Time:iece::ISO;
1;
__________________________________________________
Maintenant j'ai rajouté dans @INC le $PATH de ce fichier mymodule.pm.
Dans A.pl j'ai supprimé tous les use ... car uls ont réunis dans mymodule.pm
Dans A.pl je le charge ("use mymodule;") ... en éspérant que tous les modules appelé dans mymodule sont bien chargés.
Mais quand j'exécute A.pl ... à la ligne ou je dois un des modules (Par exemple : MIME:BAse64) j'ai :
Undefined subroutine &main::encode_base64 called at ./A.pl line 60.
... Bref c'est comme si il n'a pas excécuté le 'use MIME::Base64;' présent dans mymodule.pm
Si quelqu'un a une idée ?
Mon but étant juste de réunir tous les modules dont j'ai besoin dans un seul fichier ... puis de n'appeler QUE ce fichier dans mes scripts.
Merci !
Partager