如何向Makefile.PL添加多个Perl模块?

如何向Makefile.PL添加多个Perl模块?,perl,makemaker,Perl,Makemaker,想了解如何将多个PM文件添加到MakeMaker脚本中吗 我看到了,所有的示例看起来都像是添加了一个文件,如何添加多个文件 use ExtUtils::MakeMaker; WriteMakefile( NAME => 'Your::Module', VERSION_FROM => 'lib/Your/Module.pm' ); 我是否只需添加另一组值 use ExtUtils::MakeMaker; WriteMakefile( NAME => 'Yo

想了解如何将多个PM文件添加到MakeMaker脚本中吗

我看到了,所有的示例看起来都像是添加了一个文件,如何添加多个文件

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'
);

也许您可以尝试使用
PM
。医生说:

.pm文件和*.pl文件的Hashref到 安装。e、 g

我浏览了从CPAN下载的一些其他模块,以了解其用法示例,我在代码中找到了它:

我怀疑你发布的代码是否有效,因为你正在传递给
WriteMakefile
函数的散列有重复的键。

已经将你指向文档,但我将回答问题的另一部分(尽管它也在文档中):

NAME
是Makemaker用于分发名称的字符串。虽然这通常是主要模块,但它可以是您喜欢的任何模块


VERSION\u FROM
告诉Makemaker它应该从特定文件中获取
$VERSION
,并在分发版本中使用该版本。大多数情况下,人们使用主模块的版本作为分发版本,但您不必这样做。

答案是:什么都不做。您的原始代码和布局很好。MakeMaker将在
lib
中找到您的模块,而无需您举手。试试看


在toolic的答案中明确写出
PM
是不必要的,也是脆弱的。

thnx这是有意义的。另一个问题是,如果新的.pm文件具有CPAN库依赖项,我是否也需要在此处添加该依赖项?如果您无法从文档中找到它,请提出一个新问题。如果您使用模块名(例如lib/GD/Polyline.pm)构造lib/目录,则不需要将文件放入pm中。brian说,只有MakeMaker没有为您拾取文件时,pm才是必需的。将模块插入
lib
就完成了。为什么需要将它们添加到那里NAME'是分发中主要模块的名称,因此您不需要添加更多模块。实际上,NAME是分发名称。它根本不必是模块名。
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'},