J'ai fait un module Perl MyModule.pm
il a quelques sous-programmes getText
que je voulais appeler dans un script shell. J'ai essayé de la manière suivante mais cela donne une erreur;appel perl sous-programme dans le script shell
SEC_DIR=`perl -MMyModule -e 'getText'`; # line 1
echo $SEC_DIR
exit 0
Erreur retournée;
Can't locate MyModule.pm in @INC (@INC contains: /usr/lib/perl5/5.10.0/x86_64-linux-thread-multi /usr/lib/perl5/5.10.0 /usr/lib/perl5/site_perl/5.10.0/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.10.0 /usr/lib/perl5/vendor_perl/5.10.0/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.10.0 /usr/lib/perl5/vendor_perl .).
Échec du BEGIN - compilation annulée. PS: Les fichiers .pm et .sh sont au même emplacement. quelques autres options que j'ai essayées;
ligne 1:
SEC_DIR=`perl -MMyModule -e '&getText'`;
SEC_DIR=`perl -MMyModule -e 'use MyModule; getText'`;
SEC_DIR=`perl -e 'use MyModule; getText'`;
Merci pour votre réponse, mais quand j'utiliser votre code avec un « » après 'je', alors il montre la même erreur, cependant quand je supprime '.' ça ne fait rien. Le sous-programme getText retourne un chemin de fichier. – haris
Je l'ai testé sur Ubuntu 10.10, avec perl 5.10.1. Avec '-I.' le répertoire courant est juste recherché pour les modules avant tout autre répertoire. – TomaszK
TIMTOWTDI: 'perl -e 'do" ./MonModule.pm "; getText'' –