2015-09-20 3 views
0

По CPAN Frequently Asked Questions:cpanm не регистрирует все установленные модули в perllocal.pod

Каждый раз, когда установлен модуль на вашей системе, он добавляет информацию в файл с именем perllocal.pod

I установили несколько модулей CPAN с использованием cpanm, проблема в том, что некоторые модули не регистрируются в perllocal.pod. Например, я установил String::Escape, String::ShellQuote и String::Util, используя cpanm. Если я печатаю

$ perldoc -u perllocal | grep String:: 

Я получаю результат:

=head2 Tue Apr 21 16:47:34 2015: C<Module> L<String::Escape|String::Escape> 
=head2 Thu Aug 6 18:51:04 2015: C<Module> L<String::ShellQuote|String::ShellQuote> 

Заметьте, что String::Util отсутствует, даже если все три модуля установлены в директории /home/hakon/perl5/lib/perl5/. Например, если я типа:

$ perldoc -l String::Util 

Я получаю результат:

/home/hakon/perl5/lib/perl5/String/Util.pod 

Примечание: Эта проблема не связана с perldoc. Команда perldoc просто отображает стручок в файле perllocal.pod:

$ perldoc -l perllocal 
/home/hakon/perl5/lib/perl5/x86_64-linux-gnu-thread-multi/perllocal.pod 

Поскольку этот файл не содержит стручок для String::Util, вполне вероятно, что проблема заключается в том, что cpanm не зарегистрировать его (по неизвестной причине), когда Я установил модуль.

ответ

1

Это недостаток Makefile.PL в категории St :: Util; используя промежуточную переменную в WriteMakefile, это препятствует разбору в App :: cpanminus.

Предлагаю вам зарегистрировать его как bug - он имеет легкое исправление: просто не используйте переменную.

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