Perl CPAN模块预需求

Perl CPAN模块预需求,perl,cpan,Perl,Cpan,我计划不久将一个模块上传到CPAN。这是我参与的第一个模块。我有一个模块,我会考虑一个“beta”阶段。我使用ExtUtils::MakeMaker通过Makefile.PL生成一个Makefile(我已经在下面粘贴了它的内容)。Makefile.PL脚本列出了所有prereq模块。我想知道在安装过程中的哪一点上,如果prereq模块不存在,会安装它们吗?我很好奇,因为我在一个缺少一些prereq模块的单独环境中运行了Makefile.PL,然后是make,然后是makeinstall。但是,它

我计划不久将一个模块上传到CPAN。这是我参与的第一个模块。我有一个模块,我会考虑一个“beta”阶段。我使用ExtUtils::MakeMaker通过Makefile.PL生成一个Makefile(我已经在下面粘贴了它的内容)。Makefile.PL脚本列出了所有prereq模块。我想知道在安装过程中的哪一点上,如果prereq模块不存在,会安装它们吗?我很好奇,因为我在一个缺少一些prereq模块的单独环境中运行了Makefile.PL,然后是
make
,然后是
makeinstall
。但是,它们没有安装吗?我以为他们会,但也许我错过了什么?我正在找人提供一些清晰的信息。提前谢谢~

Makefile.PL

#!/usr/bin/env perl 

use strict;
use warnings;
use ExtUtils::MakeMaker;

WriteMakefile(
    NAME      => 'Imgur',
    VERSION   => '0.01',
    PREREQ_PM => {
        'JSON'                      => 2.90,
        'LWP::UserAgent'            => 6.05,
        'HTTP::Request::Common'     => 6.04,
        'Data::Dumper'              => 2.154,
        'DateTime::Format::ISO8601' => 0.08,
        'Config::IniFiles'          => 2.86,
        'Scalar::Util'              => 1.42,
        'Class::Std::Utils'         => 0.0.3,
        'MIME::Base64'              => 3.15,
        'File::Slurp'               => 9999.19
    }
);

Makefile.PL不安装先决条件;如果没有安装,它只会抱怨。安装先决条件是CPAN客户端的工作


注意:有一个
自动安装
功能可以做到这一点,但普遍的共识似乎是使用它是一个坏主意。

如果使用Module::Build而不是ExtUtils::MakeMaker,则可以使用
/Build installdeps
。然而,有些人认为M::B是一个失败的实验(我认为它包含了它的维护者)。模块::构建也不再是5.22的核心。0@ikegami你介意分享一些额外的讨论链接吗?在旁注中,您应该将版本指定为字符串(例如
'JSON'=>'2.90',
)。这避免了浮点转换问题。