Perl/CPAN 如何分发脚本而不是模块

Perl/CPAN how to distribute script rather than module

我刚刚发布了我的第一个 perl 程序 unifdef+(code::unifdefplus,v0.5.3),但我不确定我是否正确地完成了它。该程序分为两部分——脚本 (script/unifdef+.pl) 和模块 (lib/unifdefplus.pm)。该脚本基本上是模块的包装器。这应该充当命令行实用程序(这实际上是我想要发布的)。

我包含的 README 文件记录了脚本,而不是模块。 CPAN 似乎也从模块而不是脚本中获取版本(目前未定义)。

所以,我的问题是:如果我希望将其作为脚本而不是模块编入索引,我是否需要做任何不同的事情?另外,我认为我也应该为该模块编写一些文档——在这种情况下,我假设它应该是 lib 目录中的自述文件?

再次抱歉,这是我第一次这样做,我想确保我做对了。

马上,请阅读 PAUSE 管理员的 On the naming of modules。如果您仍有疑问,或者仍然不确定,请联系 modules <at> perl.org

最简单的方法是使用 App:: 命名空间中的名称,例如 App::MyMod.

通常,我会将脚本和模块文档保存在它们单独的文件中,但靠近模块文档的顶部,清楚地 link 脚本的文档,并说明大多数用户都想阅读正常使用。

从脚本文档构建 README

pod2readme bin/my_script

同样,如果您改变主意并希望 README 改为引用该模块:

pod2readme lib/App/MyMod.pm

假设您正在使用 ExtUtils::MakeMaker 进行构建,您可以通过添加指令确保脚本已安装:

EXE_FILES => [
    'bin/my_script'
],

当然,您的脚本位于您的发行版的顶级 bin 目录中。其他构建系统也有类似的指令。