cpanm не регистрирует все установленные модули в perllocal.pod
Согласно часто задаваемым вопросам CPAN:
Каждый раз, когда модуль установлен в вашей системе, он добавляет информацию в файл с именем
perllocal.pod
Я установил несколько модулей 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
Команда просто отображает Pod в файле perllocal.pod
:
$ perldoc -l perllocal
/home/hakon/perl5/lib/perl5/x86_64-linux-gnu-thread-multi/perllocal.pod
Поскольку этот файл не содержит каких-либо Pod для String::Util
, вероятно, проблема в том, что cpanm
не зарегистрировал его (по неизвестной причине), когда я установил модуль.
1 ответ
Это ошибка файла Makefile.PL в String::Util; используя промежуточную переменную в WriteMakefile, он мешает синтаксическому анализу в App::cpanminus.
Я предлагаю вам записать это как ошибку - это легко исправить: просто не используйте переменную.