Perl 相当于点冻结



我想在给定的目录树下获取已安装的perl模块和版本的列表。

我想完成与 python 模块pip freeze --user相同的任务。

我们通常在给定的目录中安装软件,例如foo-1.0.0将安装到/soft/foo/1.0.0 并且所需的 perl 模块将安装到 /soft/foo/1.0.0/lib/perl5

为了能够在相同的条件下复制构建和安装,我们需要能够获得已安装的perl模块及其版本的列表。

使用以下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该功能将生成所有已安装模块的捆绑包文件

最新更新