2013-04-08 4 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' –

ответ

4

То есть не ошибка установки. Кажется, вы забыли пробел между i и регулярным выражением.

Для поиска модулей я рекомендую MetaCPAN site.

Перл-модули чувствительны к регистру. Правильное имя модуля - 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

спасибо за ответ amon. Я установил модуль Xpath, его рабочий – robin

Смежные вопросы