I have a Perl program running on RedHat Linux that runs just find from the command-line as root, but throws an error from the commaind-line as a user, like so:
[gblackburn]$ perl program.pl
DBI object version 1.32 does not match $DBI::VERSION 1.37 at /usr/lib/
+perl5/5.8.0/i386-linux-thread-multi/DynaLoader.pm line 249.
BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8.0/i3
+86-linux-thread-multi/DBI.pm line 255.
Compilation failed in require at program.pl line 5.
BEGIN failed--compilation aborted at program.pl line 5.
So it looks like it's trying to use the Perl 5.6.1 DBI binary instead of the Perl 5.8.0 binary. But like I said it runs fine as root, so I checked which perl
and both the user and root respond with /usr/bin/perl
. Then I checked @INC
for both, and they are identical.
The PATH variables for root and user are somewhat different (of course) but if the path-to-perl is the same, and the @INC is the same, shouldn't the same modules be called in both cases? I'm clearly missing something dumb. Thanks!