如何让 "dzil test" 将命令行参数传递给 Makefile.PL?

How to make "dzil test" pass command line arguments to Makefile.PL?

对于我的一个依赖于 C 库的基于 XS 的 Perl 模块,我使用 Dist::Zilla together with with the MakeMaker::Awesome 插件来创建我的 Makefile.PL.

为了将选项传递给 Makefile.PL(尤其是 INCLIBS),我过去常常设置 PERL_MM_OPT 环境变量,到目前为止效果很好。

现在我想使用 Devel::CheckLib 检查 C 库是否存在。 Devel::CheckLib 在通过命令行提供时也支持 INCLIBS,但它不会从 PERL_MM_OPT.

中读取这些选项

如何让 dzil test 将命令行参数传递给 Makefile.PL

快速浏览 the source of the MakeMaker::Runner plugin 这似乎不受支持。还有其他解决方法吗?

Makefile.PL 不支持向 Makefile.PL 传递参数,而且可能永远不会支持。作为变通方法,我在调用 Devel::CheckLib:

之前将 PERL_MM_OPT 的内容添加到 @ARGV 的本地副本
{
    local @ARGV;
    unshift(@ARGV, ExtUtils::MakeMaker::_shellwords($ENV{PERL_MM_OPT} || ''));
    check_lib_or_exit(...);
}

丑陋,但有效。