| [reply] |
thanks for the explanation!
Do you have any explanation as to why my browser would succesfully use one version of a module whilst the same script run on my command prompt would not be able to find that module?
Costas
| [reply] |
Sounds like the @INC array is different in the
two different scenarios. There are a number of ways that
this can happen.
- A script can use use lib to change
@INC explicitly.
- The value of PERL5LIB could be set either in a .profile (remember that the web server probably runs as a different user) or perhaps the web server is configured to change it.
- The current directory is always in @INC. That
could be different.
Also, as the web server runs as a different user, you might not have the correct permissions to read the module file (are you seeing an error message?)
Perhaps printing out the value of @INC at the
start of the program would point out differences. It's also
worth looking at the contents of %INC which
contains the list of loaded modules together with the path
that they are loaded from.
Update: The esteemed chromatic reminds me that
if you're running you CGI script in taint mode (as we all
should do all the time) then the current directory
won't be in @INC. This may effect your
investigation.
--
<http://www.dave.org.uk>
"The first rule of Perl club is you don't talk about
Perl club."
| [reply] |
Maybe your server has two Perl interpreters installed (don't ask me why, but it could happen). So when you type from shell, let's say
perl ./myscript.pl, you're calling a different perl than /usr/bin/perl: so, with different libraries directories and so on. Try which perl from shell. I hope it could be useful.
| [reply] [d/l] [select] |