Incoherences dans @INC
Le
xavier
Bonjour,
J'ai un script perl qui m'injurie à propos d'un module non trouvé :
> Can't locate Net/MAC.pm in @INC (@INC contains:
> /Library/Perl/Updates/5.10.0/darwin-thread-multi-2level
> etc, les INC standard de MacOSX
Pourtant, lorsque je fais perl -e 'print @INC;' j'ai les répertoires où
se trouvent le perlmod en question :
> [xavier@imac-xav ~]$ /usr/bin/perl -e 'print @INC;'
> /sw/lib/perl5/5.10.0/darwin-thread-multi-2level /sw/lib/perl5/5.10.0/
> puis les emplacements standard
Comment se fait il que perl lancé en one-liner les trouve, et pas lancé
par le shebang ?. D'ailleurs, la commande "perl bin/monscript.pl"
m'injurie également.
Ca fait pourtant des années que j'utilise ça. Dans mon login il y a ce
qu'il faut :
> if [ -z "$PERL5LIB" ]; then
> PERL5LIB=/sw/lib/perl5:/sw/lib/perl5/darwin
> else
> prepend_path PERL5LIB /sw/lib/perl5:/sw/lib/perl5/darwin
> fi
> export PERL5LIB
Ca a toujours marché jusqu'ici, je ne comprends pas.
Merci,
--
Xav
In your pomp and all your glory you're a poorer man than me,
as you lick the boots of death born out of fear.
(Jethro Tull)
J'ai un script perl qui m'injurie à propos d'un module non trouvé :
> Can't locate Net/MAC.pm in @INC (@INC contains:
> /Library/Perl/Updates/5.10.0/darwin-thread-multi-2level
> etc, les INC standard de MacOSX
Pourtant, lorsque je fais perl -e 'print @INC;' j'ai les répertoires où
se trouvent le perlmod en question :
> [xavier@imac-xav ~]$ /usr/bin/perl -e 'print @INC;'
> /sw/lib/perl5/5.10.0/darwin-thread-multi-2level /sw/lib/perl5/5.10.0/
> puis les emplacements standard
Comment se fait il que perl lancé en one-liner les trouve, et pas lancé
par le shebang ?. D'ailleurs, la commande "perl bin/monscript.pl"
m'injurie également.
Ca fait pourtant des années que j'utilise ça. Dans mon login il y a ce
qu'il faut :
> if [ -z "$PERL5LIB" ]; then
> PERL5LIB=/sw/lib/perl5:/sw/lib/perl5/darwin
> else
> prepend_path PERL5LIB /sw/lib/perl5:/sw/lib/perl5/darwin
> fi
> export PERL5LIB
Ca a toujours marché jusqu'ici, je ne comprends pas.
Merci,
--
Xav
In your pomp and all your glory you're a poorer man than me,
as you lick the boots of death born out of fear.
(Jethro Tull)

Poser une question


Est-ce que l'option -T ne serait pas activée dans le shebang ?
http://perl.enstimac.fr/DocFr/perls...aint%20et%
--
Denis Dordoigne
Membre de l'April - promouvoir et défendre le logiciel libre - april.org
Rejoignez maintenant plus de 5 000 personnes, associations,
entreprises et collectivités qui soutiennent notre action
(Xavier) écrivait (wrote):
N'avez-vous pas plusieurs versions de perl (celle d'Apple et d'autres) ?
Les commandes suivantes donnent-elles la même chose :
% perl -V
% /usr/bin/perl -V
Autre possibilité : vous utilisez l'option -T sur votre ligne de
shebang...
--
Paul Gaborit - Perl en français -
Non, je prends bien soin de refuser à chaque fois que Fink veut
m'installer perl588-core
Oui,
[ ~]$ perl -V (ou /usr/bin/perl -V)
Summary of my perl5 (revision 5 version 10 subversion 0) configuration:
Platform:
osnameÚrwin, osvers.0, archnameÚrwin-thread-multi-2level
uname='darwin neige.apple.com 10.0 darwin kernel version 10.0.0d8:
tue may 5 19:29:59 pdt 2009; root:xnu-1437.2~2release_i386 i386 '
[...]
%ENV:
PERL5LIB="/sw/lib/perl5:/sw/lib/perl5/darwin:/sw/lib/perl5/darwin:
/sw/lib/perl5"
@INC:
/sw/lib/perl5/5.10.0/darwin-thread-multi-2level
/sw/lib/perl5/5.10.0
/sw/lib/perl5/darwin-thread-multi-2level
/sw/lib/perl5
/sw/lib/perl5/darwin
/sw/lib/perl5/darwin
/sw/lib/perl5/5.10.0/darwin-thread-multi-2level
/sw/lib/perl5/5.10.0
/sw/lib/perl5/darwin-thread-multi-2level
/sw/lib/perl5
/Library/Perl/Updates/5.10.0/darwin-thread-multi-2level
/Library/Perl/Updates/5.10.0
J'y avais pensé, mais non, juste le "#!/usr/bin/perl -w" habituel...
Bon, je crois que j'ai trouvé : c'est sudo qui merdoie...
$ sudo monscript.pl foire
$ sudo su -
# /Users/xavier/bin/monscript.pl ça marche
En rajoutant
Defaults env_keep += "PERL5LIB"
à sudoers, ça marche. C'était sioux à trouver, et Apple a dû modifier
son fichier sudoers à un moment où un autre, puisque ça fait au moins 7
ou 8 ans que j'utilisais des perlmods de fink (ou les miens dans
fink/dist/local en l'occurence)
Merci à vous deux.
--
Xav
In your pomp and all your glory you're a poorer man than me,
as you lick the boots of death born out of fear.
(Jethro Tull)
(Xavier) écrivait (wrote):
Ah ? D'où vient ce 'sudo' dont vous ne nous parliez pas dans le message
initial ?
Tant mieux.
Si vous aviez évoqué tout de suite 'sudo', nous vous aurions sans doute
aiguillé vers ce genre de problèmes. Moi, ce qui m'étonne, c'est que ça
marchait avant.
De rien, finalement... ;-)
--
Paul Gaborit - Perl en français -