我刚刚发布了我的第一个 perl 程序 unifdef+ (code::unifdefplus, v0.5.3),但我不确定我是否做得正确。该程序分为两部分——一个脚本(script/unifdef+.pl)和一个模块(lib/unifdefplus.pm)。该脚本基本上是模块的包装器。这应该充当命令行实用程序(这实际上是我想要发布的)。
我包含的 README 文件记录了脚本,而不是模块。 CPAN 似乎也从模块而不是脚本中获取版本(目前尚未定义)。
所以,我的问题是:如果我希望它被索引为脚本而不是模块,我需要做任何不同的事情吗?另外,我认为我也应该为模块编写一些文档——在这种情况下,我假设它应该是 lib 目录中的 README 文件?
再次道歉,但这是我第一次这样做,我想确保我做对了。
最佳答案
马上开始,请阅读 On the naming of modules来自 PAUSE 管理员。如果您仍有疑问或不确定,请联系 modules <at> perl.org
.
最简单的方法是使用 App::
中的名称。命名空间,例如 App::MyMod
.
通常,我会将脚本和模块文档保存在它们单独的文件中,但靠近模块文档的顶部,清楚地链接到脚本的文档,并声明大多数用户都希望阅读它以供正常使用。
建立 README
来自脚本文档:
pod2readme bin/my_script
同样,如果您改变主意并想要
README
改为引用模块:pod2readme lib/App/MyMod.pm
假设您使用 ExtUtils::MakeMaker对于您的构建,您可以通过添加指令来确保安装脚本:
EXE_FILES => [
'bin/my_script'
],
当然,您的脚本在顶层
bin
您的发行版目录。其他构建系统也有类似的指令。
关于Perl/CPAN 如何分发脚本而不是模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42471050/