1

我在使用 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
4

2 回答 2

6

您发现的实例XML::LibXML可能属于 perl 的不同安装。即使您扩展搜索路径以包含其位置,它也可能不起作用。

您应该使用任何合适的工具重新安装库 - 可能是cpan.

于 2013-07-03T11:40:03.883 回答
0

我同意鲍罗丁。看来您的 Perl 安装可能与系统上已安装的标准 Perl 不同。

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

$ which perl

或者

$ type perl

这两个命令之一应该显示默认情况下正在执行哪个 Perl 程序。

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

当您键入perl -Vwhich 应该列出所有可能安装 Perl 模块的标准位置时会发生什么?

您的XML::LibXML模块安装也可能不好。我认为您看到的目录是依赖于二进制程序的目录XML::LibXML,但也应该有一个 Perl 版本来引用该二进制文件,例如usr/local/lib/perl5/site_perl/5.18.0/XML/LibXML/.

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

$ perldoc -l XML::LibXML::Nodelist

并查看它的安装位置。

于 2013-07-03T12:18:16.770 回答