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.

Я предлагаю вам записать это как ошибку - это легко исправить: просто не используйте переменную.

Другие вопросы по тегам