Perl重定向到错误的执行路径

时间:2013-07-03 10:42:02

标签: perl

我在使用Perl时遇到了一些问题。在执行期间,我收到此错误。

Can't locate XML/LibXML/NodeList.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /usr/local/lib64/perl5/XML/LibXML.pm line 25.

但是当我尝试使用locate命令找到此文件时,我发现了它。 /usr/local/lib/perl5/site_perl/5.18.0/x86_64-linux/XML/LibXML/目录。

我安装了不同的perl软件包,它们都安装正确。如果我将单个文件放在指定的位置,那么它会抱怨另一个文件。所以手动放置文件不是一个好主意。

那么如何更改其路径以便它可以从正确的目录执行文件?

修改

Can't locate loadable object for module XML::LibXML in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /usr/local/lib64/perl5/XML/LibXML.pm line 154
[Wed Jul 03 10:15:13 2013] [error] [client 192.73.242.136] BEGIN failed--compilation aborted at /usr/local/lib64/perl5/XML/LibXML.pm line 154.
[Wed Jul 03 10:15:13 2013] [error] [client 192.73.242.136] Compilation failed in require at /var/www/cgi-bin/astpp/astpp-cdr-xml.cgi line 23.
[Wed Jul 03 10:15:13 2013] [error] [client 192.73.242.136] BEGIN failed--compilation aborted at /var/www/cgi-bin/astpp/astpp-cdr-xml.cgi line 23.
[Wed Jul 03 10:15:13 2013] [error] [client 192.73.242.136] Premature end of script headers: astpp-cdr-xml.cgi

2 个答案:

答案 0 :(得分:6)

您找到的XML::LibXML实例可能属于不同的perl安装。即使您将搜索路径扩展到包含其位置,它也可能无法正常工作。

您应该使用适当的工具重新安装库 - 可能是cpan

答案 1 :(得分:0)

我同意Borodin。您的Perl安装似乎可能与系统上已安装的标准Perl不同。

如果您输入以下内容会发生什么:

$ which perl

$ type perl

这两个命令中的一个应该显示默认执行哪个Perl程序。

Perl程序的第一行指向哪个Perl可执行文件? (它看起来像#! /usr/bin/perl它们是两个不同的位置吗?

键入perl -V时会发生什么情况,该XML::LibXML应列出可以安装Perl模块的所有标准位置?

XML::LibXML模块的安装也可能不好。我认为您看到的目录是针对usr/local/lib/perl5/site_perl/5.18.0/XML/LibXML/所依赖的二进制程序,但是也应该有一个Perl版本,它将在$ perldoc -l XML::LibXML::Nodelist 之类的地方引用该二进制文件。

尝试使用CPAN重新安装此模块,然后运行以下命令:

{{1}}

并查看它的安装位置。