-3

cpan モジュールをインストールしようとしています。しかし、次のエラーが発生します

これに対する解決策を提供してください

cpan[3]> install xml::xpath
Going to read '/Users/user/.cpan/Metadata'
  Database was generated on Sun, 07 Apr 2013 09:53:02 GMT
Warning: Cannot install xml::xpath, don't know what it is.
Try the command

    i /xml::xpath/

to find objects with matching identifiers.

cpan[4]> i/xml::xpath/
Catching error: "Can't locate object method \"xpath/\" via package \"i/xml\" (perhaps you forgot to load \"i/xml\"?) at /System/Library/Perl/5.12/CPAN.pm line 375, <FIN> line 4.\cJ" at /System/Library/Perl/5.12/CPAN.pm line 391
    CPAN::shell() called at /System/Library/Perl/5.12/App/Cpan.pm line 295
    App::Cpan::_process_options('App::Cpan') called at /System/Library/Perl/5.12/App/Cpan.pm line 364
    App::Cpan::run('App::Cpan') called at /usr/bin/cpan5.12 line 12

cpan[5]> 
4

1 に答える 1

4

これはインストール エラーではありません。iと正規表現の間のスペースを忘れたようです。

モジュールを検索するには、MetaCPAN サイトをお勧めします。

Perl モジュールでは大文字と小文字が区別されます。モジュールの正しい名前はXML::XPath.


cpan モジュールは少しメタプログラミングを行っているようで、あなたはそれをだましてエラーにしました:

コマンドの最初のスペース以外の文字列はメソッド名として扱われるため、

cpan[n]> foo

するだろう

my $method = "foo";
$shell->$method; # like $shell->foo

ただし、メソッドの完全修飾名を使用して、他のパッケージからメソッドを呼び出すことができます。よくあるのはSUPER疑似パッケージです。

MyClass->SUPER::new(@args);

特殊文字を含むパッケージとサブを宣言できないからといって、それらを使用できないというわけではありません。したがって、完全修飾メソッド名はパッケージ名とサブ名にi/xml::xpath/分けられます。i/xmlxpath/

通常の Perl コードでそのような名前を使用することは不可能ですが、変数をメソッド名として使用するトリックにより、パーサーは回避されます。

于 2013-04-08T10:53:54.363 に答える