Tuesday, March 17, 2009

Running perl fails perl lib version doesn't match executable version

Problem Description
Whenever you wish to use perl it did not run failing with perl lib version doesn't match executable version. Even it happens whenever you wish to know the version of the perl as shown below.
C:\>perl.exe -V
Perl lib version (v5.8.3) doesn't match executable version (v5.8.7) at E:\oracle\product\10.2.0\db_1\perl\5.8.3\lib/MSWin32-x86-multi-thread/Config.pm line 32.
Compilation failed in require.
BEGIN failed--compilation aborted.

Cause and Solution of the Problem:
As the error indicates executable version of perl(perl.exe) does not match it library version which is under MSWin32-x86-multi-thread/Config.pm. This is a possible problem if you install perl two times that have different version in your hand. Note that many software includes perl software. So if you install other software then perl can be integrated with it. If you have oracle database then already perl is there. If you install any web (server+ php) then perl may be integrated with the installation.

The solution is use the same perl executable version as of library version. Suppose if I select executable version of 5.8.3 then it will solve my problem.

C:\>E:\oracle\product\10.2.0\db_1\perl\5.8.3\bin\MSWin32-x86-multi-thread\perl.exe -V
Summary of my perl5 (revision 5 version 8 subversion 3) configuration:
Platform:
osname=MSWin32, osvers=4.0, archname=MSWin32-x86-multi-thread
uname=''
config_args='undef'
hint=recommended, useposix=true, d_sigaction=undef
usethreads=undef use5005threads=undef useithreads=define usemultiplicity=define
useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
use64bitint=undef use64bitall=undef uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:

No comments:

Post a Comment