我希望另一个开发人员运行我编写的 Perl 脚本。该脚本使用许多 CPAN 模块,必须先安装这些模块才能运行该脚本。是否可以让脚本(或perl
二进制文件)转储所有缺失模块的列表?当我尝试运行脚本时,Perl 会打印出丢失模块的名称,但这很冗长,并且不会一次列出所有丢失的模块。我想做类似的事情:
$ cpan -i `said-script --list-deps`
甚至:
$ list-deps said-script > required-modules # on my machine
$ cpan -i `cat required-modules` # on his machine
有没有简单的方法来做到这一点?这不是一个表演障碍,但我想让其他开发人员的生活更轻松。(所需的模块分散在几个文件中,因此我很难手动列出列表而不会遗漏任何内容。我知道PAR,但对于我想要的来说似乎有点太复杂了。)
更新:谢谢,曼尼,这样就可以了。我不知道%INC
,我只知道@INC
。我解决了这样的问题:
print join("\n", map { s|/|::|g; s|\.pm$||; $_ } keys %INC);
打印出来:
Moose::Meta::TypeConstraint::Registry
Moose::Meta::Role::Application::ToClass
Class::C3
List::Util
Imager::Color
…
看起来这会奏效。