问题描述:先是一个弹出框提示‘无法启动此程序,计算机丢失Perl58.dll’,如下图:

图片丢失

Oracle10g中安装Perl环境所产生的冲突 - 术士 - 术士

点击确定后报出错误信息:Can'tload'd:\oracle\product\10.2.0\db_1\perl\5.8.3\lib/MSWin32-x86-multi-threa
d/auto/Data/Dumper/Dumper.dll'formoduleData::Dumper:load_file:找不到指定的模
块。atd:\oracle\product\10.2.0\db_1\perl\5.8.3\lib/MSWin32-x86-multi-thread/XS
Loader.pmline68.
atd:\oracle\product\10.2.0\db_1\perl\5.8.3\lib/MSWin32-x86-multi-thread/Data/Dumper.pmline27
Compilationfailedinrequireatmy.plline3.
BEGINfailed--compilationabortedatmy.plline3.

从上述信息很明显,应该是早前安装的Oracle与新装的Perl冲突了,而且冲突是因为Oracle在安装的时候往我们系统中添加了一个Perl5Lib的环境变量,而这个环境变量指向的则是Oracle安装目录下那个模块不全的Perl,从信息提示可以知道为OracleHome/perl目录。

解决方法:

1、适合经常与Oracle打交道而偶尔玩下perl的一类朋友:

如果是这样的话,建议就不要对环境变量Perl5Lib动手了。在运行Perl命令之前,设置下当前命令行窗口的临时Perl5Lib变量就可以了。如笔者的Perl环境安装在D盘根目录下,则在运行cmd后,使用命令SetPerl5Lib="D:\Perl\bin\"改变下环境变量Perl5Lib的指向,该命令作用域为Session级的,即重开Cmd后还得再次设置。

2、适合经常与Perl打交道而偶尔玩下Oracle的一类朋友:

可以先备份下环境变量Per5lLib的内容,然后将Perl5Lib清空或者设置为D:\Perl\Lib即OK。

3、两者都经常打交道的:
将D:\Perl\lib加到环境变量Perl5Lib的最前面,注意,不是替换