我正在尝试使用Perl复制我的C#
/ XPath
代码在Linux上的功能。我复制并粘贴了Perl & XML中的例8-6中的代码。如果我理解正确,我应该能够运行该Perl代码,将此代码放在终端
xmlPerl.pl mydatafile.xml "/inventory/category/item/name"
但是当我尝试运行Perl文件时,它不起作用。这是错误:
[root@Perl ~]# perl xmlPerl.pl
Can't locate XML/XPath.pm in @INC (@INC contains: /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi /usr/lib64/perl5/site_perl/5.8.7/x86_64-linux-thread-multi /usr/lib64/perl5/site_perl/5.8.6/x86_64-linux-thread-multi /usr/lib64/perl5/site_perl/5.8.5/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl/5.8.7 /usr/lib/perl5/site_perl/5.8.6 /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi /usr/lib64/perl5/vendor_perl/5.8.7/x86_64-linux-thread-multi /usr/lib64/perl5/vendor_perl/5.8.6/x86_64-linux-thread-multi /usr/lib64/perl5/vendor_perl/5.8.5/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl/5.8.7 /usr/lib/perl5/vendor_perl/5.8.6 /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/5.8.8 .) at xmlPerl.pl line 3.
BEGIN failed--compilation aborted at xmlPerl.pl line 3.
我做错了什么?我认为它与我的代码开头的XML和XPath名称有关。我是否需要安装一些东西才能使用XPath框架?我在RedHat 5.5上运行。
答案 0 :(得分:9)
来自perldiag
:
找不到%s
您说要执行(或要求或使用)无法找到的文件。 Perl在
@INC
中提到的所有位置查找文件,除非文件名包含文件的完整路径。也许您需要设置PERL5LIB
或PERL5OPT
环境变量来说明额外库的位置,或者脚本需要将库名称添加到@INC
。或许你只是错误拼写了文件的名称。请参阅require
和perlfunc
中的lib
。
您没有安装XML::XPath
模块,或者Perl找不到它。使用CPAN安装模块:
> cpan XML::XPath
或使用包管理器:
> apt-get install libxml-xpath-perl
或者如果它已经安装,说明PERL5LIB
环境变量的位置:
> PERL5LIB=/path/to/lib perl ...
@INC
变量:
BEGIN {
unshift(@INC, '/path/to/lib');
}
或lib
pragma:
use lib '/path/to/lib';
答案 1 :(得分:3)
这是尝试use
未安装的模块时出现的标准错误。你应该安装它。
理想情况下使用OS包;例如,在debian派生的操作系统(如Debian或Ubuntu)上
$ apt-get install libxml-xpath-perl
如果失败,您可以像往常一样使用CPAN
进行安装$ cpan XML::XPath
答案 2 :(得分:0)
答案出现在错误的第一部分:
Can't locate XML/XPath.pm
在Perl中,最大的好处是使用其他人为您编写的模块或库,您可以重复使用。在这种情况下,有人写了一个名为XML :: XPath的模块(在Perl中,路径由'::'描述),你只需要安装它。安装它的最简单方法是通过cpan
,这是一个安装了大多数Perl安装的工具。跑吧:
cpan
(you'll be dropped into a different command prompt)
install XML::XPath
这将获取XML :: XPath,解压缩,生成Makefile,检查依赖项(并安装任何缺失的),制作,测试并为您安装。有关使用CPAN的详细信息,请查看here。