我在使用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
答案 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}}
并查看它的安装位置。