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]>
答
也就是说不安装错误提供解决方案。你似乎忘记了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
更好的是,在命令行上:'cpan XML :: XPath' – 2013-04-08 16:39:35