我正在尝试复制我的C#
/XPath
代码在 Linux 上使用 Perl 执行。我将示例 8-6 中的代码复制并粘贴到Perl 和 XML http://oreilly.com/catalog/9780596002053。如果我理解正确,我应该能够运行该 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 上运行。
From perldiag http://metacpan.org/module/perldiag:
找不到 %s
您说要执行(或要求或使用)一个无法找到的文件。 Perl 在所有提到的位置查找该文件@INC
,除非文件名包含文件的完整路径。也许您需要设置PERL5LIB
or PERL5OPT
环境变量来说明额外的库在哪里,或者脚本可能需要将库名称添加到@INC
。或者也许您只是拼错了文件名。看require
in perlfunc
and 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');
}
or lib
pragma:
use lib '/path/to/lib';
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)