SamQi has asked for the wisdom of the Perl Monks concerning the following question:
I'm totally stumped with this problem.
Because HTML::Parser provides such fantastic parsing capabilities, I use it in my code. But, unfortunately, the place I'm hosting this CGI script on has an old version. I can't upgrade the version, so I install my own copy. I use lib the path to where my module is, so that I can make sure it loads mine. When I run it from the command-line, it works. It loads my copy. If I print $INC{'HTML/Parser.pm'} I get this:
/home/j/johngalt/lib/perl5/site_perl/5.005/i386-linux-thread/HTML/Parser.pmNow, if I run the exact same code as the web user, I get this output (with CGI::Carp qw(fatalsToBrowser)):
Can't load '/home/j/johngalt/lib/perl5/site_perl/5.005/i386-linux-thread/auto/HTML/Parser/Parser.so' for module HTML::Parser: /home/j/johngalt/lib/perl5/site_perl/5.005/i386-linux-thread/auto/HTML/Parser/Parser.so: undefined symbol: PL_thrsv at /usr/lib/perl5/i386-linux/DynaLoader.pm line 169. at/home/j/johngalt/public-web/uncoiled/cgi-bin/logger.cgi line 10
If I run ld --cref on the Parser.so file, it gives me the symbol table, and then it says that all of the symbols that are supposed to be defined in Parser.so are undefined (including PL_thrsv, which is what is generating that error).
I've run out of ideas, any suggestions from the venerable monks?
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
(tye)Re: Particularly peculiar problem with loading modules
by tye (Sage) on Mar 22, 2001 at 01:44 UTC | |
by SamQi (Beadle) on Mar 22, 2001 at 02:47 UTC |