http://www.perlmonks.org?node_id=302406

Trimbach has asked for the wisdom of the Perl Monks concerning the following question:

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!

Gary Blackburn
Trained Killer