寻找有关如何将多个PM文件添加到MakeMaker脚本的一些见解?
我看到this documentation并且所有示例看起来都添加了一个文件,如何添加多个文件?
use ExtUtils::MakeMaker;
WriteMakefile(
NAME => 'Your::Module',
VERSION_FROM => 'lib/Your/Module.pm'
);
我只是添加另一组值吗?
use ExtUtils::MakeMaker;
WriteMakefile(
NAME => 'Your::Module',
VERSION_FROM => 'lib/Your/Module.pm'
NAME => 'Your::Module2',
VERSION_FROM => 'lib/Your/Module2.pm'
);
答案 0 :(得分:5)
答案是:什么都不做。您的原始代码和布局很好。 MakeMaker将在lib
中找到您的模块而无需抬起手指。试试吧,看看。
在工具的答案中明确写出PM
是不必要和脆弱的。
答案 1 :(得分:3)
toolic's answer已将您指向文档,但我会回答问题的其他部分(尽管它也在文档中):
NAME
是Makemaker用于分发名称的字符串。虽然这通常是主要模块,但它确实可以是你喜欢的任何东西。
VERSION_FROM
告诉Makemaker它应该从特定文件中获取$VERSION
并在分发版本中使用它。大多数情况下,人们使用主模块的版本作为分发版本,但您不必这样做。
答案 2 :(得分:1)
也许您可以尝试使用PM
。 ExtUtils::MakeMaker doc说:
.pm文件的Hashref和* .pl文件到 安装。 e.g。
我查看了从CPAN下载的其他模块,了解其用法示例,我在GD Makefile.PL代码中找到了它:
WriteMakefile(
'NAME' => 'GD',
'VERSION_FROM' => 'GD.pm',
'PREREQ_PM' => {
'Math::Trig' => 0,
},
'PM' => { 'GD.pm' => '$(INST_LIBDIR)/GD.pm',
'GD/Polyline.pm' => '$(INST_LIBDIR)/GD/Polyline.pm',
'GD/Polygon.pm' => '$(INST_LIBDIR)/GD/Polygon.pm',
'GD/Simple.pm' => '$(INST_LIBDIR)/GD/Simple.pm',
'GD/Image.pm' => '$(INST_LIBDIR)/GD/Image.pm',
'GD/Group.pm' => '$(INST_LIBDIR)/GD/Group.pm',
'qd.pl' => '$(INST_LIBDIR)/qd.pl'},
我怀疑您发布的代码是否有效,因为您传递给WriteMakefile
函数的哈希值有重复键。