Perl模块发行版可以包含脚本吗

Perl模块发行版可以包含脚本吗,perl,module,Perl,Module,我正在考虑使用模块对脚本进行分组。我经常会遇到这样的情况:我有一个或多个使用某个模块的脚本 是否可以将脚本与模块打包在一起 对于如何实现这一点,是否有任何具体规定 感谢您的输入。您可以通过在Makefile.PL文件中包含EXE\u FILES指令,并在数组引用中提供脚本的相对路径,将脚本与模块一起包含。在下面的示例中,脚本位于模块目录顶层的bin/目录中。您不需要将文件放在类似于发行版的布局中,但这会有所帮助(见下文) 设置目录结构并在Makefile.PL中修改路径后,运行makeinsta

我正在考虑使用模块对脚本进行分组。我经常会遇到这样的情况:我有一个或多个使用某个模块的脚本

是否可以将脚本与模块打包在一起

对于如何实现这一点,是否有任何具体规定


感谢您的输入。

您可以通过在
Makefile.PL
文件中包含
EXE\u FILES
指令,并在数组引用中提供脚本的相对路径,将脚本与模块一起包含。在下面的示例中,脚本位于模块目录顶层的
bin/
目录中。您不需要将文件放在类似于发行版的布局中,但这会有所帮助(见下文)

设置目录结构并在
Makefile.PL
中修改路径后,运行
makeinstall
将随模块一起安装脚本

use ExtUtils::MakeMaker;

WriteMakefile(
    NAME              => 'My::Module',
    VERSION_FROM      => 'lib/My/Module.pm',
    ($] >= 5.005 ?
      (ABSTRACT_FROM  => 'lib/My/Module.pm',
    AUTHOR            => 'My Name <email.addr>') : ()),
    LIBS              => [],
    EXE_FILES         => [qw(bin/script1 bin/script2)],
    DEFINE            => '',
    INC               => '-I.',
    PREREQ_PM         => {},
);
现在,您可以将模块的代码复制到
lib/My/module.pm
,创建一个
bin/
目录,将脚本放入其中,将
EXE\u FILES
指令添加到
Makefile.PL
,您可以使用整套
make
命令来制作、测试和安装模块和脚本,例如:

perl Makefile.PL
make
make test
make install

这是一个真实世界,我自己在CPAN上的一个发行版,包括一个捆绑的
pinmap
Perl脚本以及发行版的模块:

您能提供一个examaple吗?重新表述,我希望在一个通过本地CPAN管理的模块目录中包含脚本,这样在部署模块时就可以执行了。不知道编译是否会反对这些脚本的存在,而且脚本位置不会在路径中。请参阅下面的答案。我展示的方法将把脚本安装到
路径
中的某个位置,同时将模块安装到正确的位置。谢谢,我将尝试此方法。我们已经使用了模块启动器,所以这应该是我们程序的一个很好的扩展。
perl Makefile.PL
make
make test
make install