2013-04-08 189 views
-3

我正在嘗試安裝cpan模塊。但出現以下錯誤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]> 
+0

更好的是,在命令行上:'cpan XML :: XPath' – 2013-04-08 16:39:35

回答

4

也就是說安裝錯誤提供解決方案。你似乎忘記了i和正則表達式之間的空間。

要搜索模塊,我推薦使用MetaCPAN site

Perl模塊區分大小寫。模塊的正確名稱是XML::XPath


CPAN的模塊,似乎做了一下元編程的,你騙入一個錯誤:

你的命令的第一個非空字符串被視爲一個方法的名稱,所以

cpan[n]> foo 

會做

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

但是,您可以通過撥打全光照其他包方法g該方法的完全限定名稱。一個普遍的現象是SUPER僞包:

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

只是因爲你不能聲明包和含有特殊字符,並不意味着它是不可能使用這些潛艇。因此,完全合格的方法名稱i/xml::xpath/分爲包名稱i/xml和子名稱xpath/

在普通的Perl代碼中不可能使用這樣的名字,但是因爲使用變量作爲方法名稱的技巧,所以解析器被規避了。

+0

感謝您的回覆。我已經安裝了Xpath模塊,它的工作 – robin 2013-04-08 11:34:31