Cpan模块安装错误

问题描述:

我正在尝试安装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

也就是说安装错误提供解决方案。你似乎忘记了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