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

use*_*918 6 perl cpan

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

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

所以,我的问题是:如果我希望将其编入索引而不是模块,我是否需要做不同的事情?另外,我正在接受它我也应该为该模块编写一些文档 - 在这种情况下我假设它应该是lib目录中的README文件?

我再次道歉,但这是我第一次这样做,我想确保我做得对.

ste*_*ieb 6

马上,请阅读PAUSE管理员的模块命名.如果您仍然有疑问,或者您仍然不确定,请与我们联系modules <at> perl.org.

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

通常,我会将脚本和模块文档保存在单独的文件中,但是在模块文档的顶部附近,清楚地链接到脚本的文档,并说明大多数用户都希望阅读它以供正常使用.

要从README脚本文档构建:

pod2readme bin/my_script
Run Code Online (Sandbox Code Playgroud)

同样,如果您改变主意并想要README引用该模块:

pod2readme lib/App/MyMod.pm
Run Code Online (Sandbox Code Playgroud)

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

EXE_FILES => [
    'bin/my_script'
],
Run Code Online (Sandbox Code Playgroud)

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