我想获取给定目录树下已安装的perl模块和版本的列表。
对于python模块,我想完成与pip freeze --user
中相同的任务。
我们通常在给定目录中安装软件,例如foo-1.0.0
将安装到/soft/foo/1.0.0
并将所需的perl模块安装到/soft/foo/1.0.0/lib/perl5
。
为了能够在相同条件下复制构建和安装,我们需要能够获取已安装的perl模块列表及其版本。
答案 0 :(得分:0)
使用以下Perl程序
#!perl
use ExtUtils::Installed;
my $inst = ExtUtils::Installed->new(@ARGV ? (inc_override => \@ARGV) : ());
my @modules = $inst->modules;
foreach (sort @modules) {
print "$_ => ", $inst->version($_), "\n";
}
它需要一个目录列表进行搜索。如果未提供任何参数,则使用@INC的内容
您还可以使用CPAN模块perl -MCPAN -e autobundle
的自动捆绑功能,该功能将生成所有已安装模块的捆绑文件