cpanm does not register all installed modules in p

2019-09-08 07:59发布

According to CPAN Frequently Asked Questions:

Each time a module is installed on your system, it appends information to a file called perllocal.pod

I have installed several CPAN modules using cpanm, the problem is that some modules do not get registered in perllocal.pod. For example, I have installed String::Escape, String::ShellQuote, and String::Util using cpanm. If I type

$ perldoc -u perllocal | grep String::

I get output:

=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>

Note that String::Util is missing, even if all three modules are installed under directory /home/hakon/perl5/lib/perl5/. For example, if I type:

$ perldoc -l String::Util

I get output:

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

Note: The problem is not related to perldoc. The perldoc command simply displays the Pod in the file perllocal.pod:

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

Since this file does not contain any Pod for String::Util, it is likely that the problem is that cpanm did not register it ( for some unknown reason ) when I installed the module.

1条回答
该账号已被封号
2楼-- · 2019-09-08 08:21

This is the fault of the Makefile.PL in String::Util; by using an intermediary variable in WriteMakefile it thwarts the parsing in App::cpanminus.

I suggest you log this as a bug -- it has an easy fix: simply don't use the variable.

查看更多
登录 后发表回答