Je donne les résultats suivants, simple script CGI Perl:Comment définir @INC de Perl pour un script CGI?
use strict;
use warnings;
use CGI();
use CGI::Carp qw(fatalsToBrowser);
use Template;
print CGI::header();
foreach(@INC) {
print "$_\n";
}
Quand appelé (http://[..]/cgi-bin/p.cgi) Je suis donné l'erreur suivante:
Can't locate Template.pm in @INC (@INC contains: /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.8/i386-linux-thread-multi /usr/lib/perl5/5.8.8 .) at /home/pistacchio/webapps/htdocs/cgi-bin/p.cgi line 8.
BEGIN failed--compilation aborted at /home/pistacchio/webapps/htdocs/cgi-bin/p.cgi line 8.
Je me suis assuré que modèle est installé et même lors de l'exécution de cette programme de shell cela fonctionne (charges) et les sorties de modèles:
Content-Type: text/html; charset=ISO-8859-1
/home/pistacchio/lib/perl5
/home/pistacchio/lib/perl5/lib/i386-linux-thread-multi
/home/pistacchio/lib/perl5/lib
/home/pistacchio/lib/perl5/lib/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.8
/usr/lib/perl5/site_perl
/usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.8
/usr/lib/perl5/vendor_perl
/usr/lib/perl5/5.8.8/i386-linux-thread-multi
/usr/lib/perl5/5.8.8
modèle est installé dans /home/pistacchio/lib/perl5/lib/i386-linux-thread-multi
[[email protected] i386-linux-thread-multi]$ pwd
/home/pistacchio/lib/perl5/lib/i386-linux-thread-multi
[[email protected] i386-linux-thread-multi]$ ls
auto perllocal.pod Template Template.pm
Ce répertoire est correctement listé dans env
et, comme précédemment affiché, dans @INC
. Dans @INC
il est montré deux fois, donc j'ai même essayé de le sortir avant d'appeler use Template
, mais sans résultat. De env
:
[[email protected] i386-linux-thread-multi]$ env
[..]
PERL5LIB=/home/pistacchio/lib/perl5:/home/pistacchio/lib/perl5/lib:/home/pistacchio/lib/perl5/lib/i386-linux-thread-multi
[..]
Suppression use Template
se débarrasse du problème.
Vous dites que Template est dans @INC, mais si vous lisez le @INC dans votre sortie CGI, vous voyez que ce n'est évidemment pas le cas. –