4

私は自分のC#/XPathコードがPerlを使用してLinuxで行うことを複製しようとしています。例8-6のコードをPerlとXMLでコピーして貼り付けました。私が正しく理解していれば、その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フレームワークを使用するために何かをインストールする必要がありますか?私はRedHat5.5で実行しています。

4

3 に答える 3

9

からperldiag:

%s が見つかりません

見つからないファイルを実行する (または要求する、または使用する) ように言いました。Perl は@INC、ファイル名にファイルへのフル パスが含まれていない限り、 に記載されているすべての場所でファイルを検索します。おそらく、PERL5LIBまたはPERL5OPT環境変数を設定して、追加のライブラリの場所を指定する必要があるか、スクリプトでライブラリ名を に追加する必要があるかもしれません@INC。または、ファイル名のスペルを間違えただけかもしれません。およびを参照requireしてください。perlfunclib

モジュールがインストールされていない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プラグマ:

use lib '/path/to/lib';
于 2012-06-25T16:24:49.180 に答える
3

useこれは、インストールされていないモジュールを試したときに発生する標準エラーです。インストールする必要があります。

OS パッケージを使用するのが理想的です。たとえば、debian 由来の OS (Debian や Ubuntu など) の場合

$ apt-get install libxml-xpath-perl

それができない場合は、CPAN を使用して通常どおりインストールできます。

$ cpan XML::XPath
于 2012-06-25T16:15:11.960 に答える
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 の使用に関する詳細については、こちらを参照してください。

于 2012-06-25T16:14:26.353 に答える