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

I just installed perl on this laptop (Win XP, ActiveState perl), and tried:
C:\>perldoc Perl lib version (v5.8.3) doesn't match executable version (v5.8.7) at + C:\ora10\perl\5.8.3\lib/MSWin32-x86-mul ti-thread/Config.pm line 32. Compilation failed in require at C:\ora10\perl\5.8.3\lib/Pod/Perldoc.p +m line 7. BEGIN failed--compilation aborted at C:\ora10\perl\5.8.3\lib/Pod/Perld +oc.pm line 7. Compilation failed in require at C:\Perl\bin\perldoc.bat line 22. BEGIN failed--compilation aborted at C:\Perl\bin\perldoc.bat line 22.
I fixed this by appending an underscore to the directory C:\ora10\perl, but I am curious about why this happened. I am not finding perldoc.bat very enlightening; here is the vicinity of the offending line ("use POD::Perldoc"):
# This "perldoc" file was generated by "perldoc.PL" require 5; BEGIN { $^W = 1 if $ENV{'PERLDOCDEBUG'} } use Pod::Perldoc; exit( Pod::Perldoc->run() ); __END__ :endofperl
There are various oracle services running, though perl is now at the head of my PATH as I just installed it.

any light to shed?

Replies are listed 'Best First'.
Re: Oracle Activestate, and perldoc prob
by Tanktalus (Canon) on Oct 02, 2005 at 02:42 UTC

    Off the top of my head, do you have any other perl environment variables set? For example, PERLLIB, PERL5LIB, or the like?

    I'm just guessing, as I don't use Oracle (I use DB2 ;-}), but perhaps Oracle is adding stuff to PERLLIB or PERL5LIB for some reason which I could guess at, but it wouldn't be good conversation if I did.

    "Mucking with users' environment is highly discouraged." If only everyone understood this. ;-)

Re: Oracle Activestate, and perldoc prob
by PodMaster (Abbot) on Oct 02, 2005 at 12:28 UTC
    When you type perldoc you're really executing perldoc.bat, which looks like
    @rem = '--*-Perl-*-- @echo off if "%OS%" == "Windows_NT" goto WinNT perl -x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9 goto endofperl :WinNT perl -x -S %0 %*
    So the first perl.exe that is found first in your %PATH% (v5.8.7) is what gets executed (even if perldoc.bat belongs to the v5.8.3 perl), but at the same time, through win32 specific magic, C:\ora10\perl\5.8.3\lib/MSWin32-x86-multi-thread/ get added to the top of @INC, so when perldoc uses Config, Config croaks (correctly) because it doesn't match the perl that's loading it.

    MJD says "you can't just make shit up and expect the computer to know what you mean, retardo!"
    I run a Win32 PPM repository for perl 5.6.x and 5.8.x -- I take requests (README).
    ** The third rule of perl club is a statement of fact: pod is sexy.

Re: Oracle Activestate, and perldoc prob
by astroboy (Chaplain) on Oct 03, 2005 at 03:49 UTC
    Having both Oracle's and ActiveState's Perl installed is not a probem per se, but you may find that things don't work properly if you're not sure which is in your path first. I remember when Oracle originally - and without notice - decided to include Perl with their RDBMS. Following an upgarde, our Perl code stopped working, and it took a while to figure out why. We just made sure that ActiveState's Perl came first in the path after that...