【发布时间】:2017-07-17 04:46:03
【问题描述】:
我刚刚发布了我的第一个 perl 程序 unifdef+ (code::unifdefplus, v0.5.3),但我不确定我是否做得正确。该程序分为两部分——一个脚本(script/unifdef+.pl)和一个模块(lib/unifdefplus.pm)。该脚本基本上是模块的包装器。这应该充当命令行实用程序(这实际上是我想要发布的)。
我包含的 README 文件记录了脚本,而不是模块。 CPAN 似乎也从模块而不是脚本中获取版本(目前尚未定义)。
所以,我的问题是:如果我希望将其作为脚本而不是模块进行索引,我是否需要做一些不同的事情?另外,我认为我也应该为模块编写一些文档——在这种情况下,我假设它应该是 lib 目录中的 README 文件?
再次道歉,但这是我第一次这样做,我想确保我做得对。
【问题讨论】:
-
检查其他脚本是如何做到的,例如在
App::命名空间中。 -
很好的例子是 App::cpanminus、App::cpanminus::reporter 或 CPAN::Uploader。不要在命名空间的第一部分发布任何以小写字母开头的内容。这些是为编译指示保留的。
-
Re "CPAN 似乎是从模块而不是脚本中获取版本",使用 MM 和 MB,您可以指定哪个文件获取版本从
-
Re "a module (lib/unifdefplus.pm)", 不要放在具有根名称空间的 CPAN 模块上
-
@ikegami 有一个非常重要的观点,我已经用这些信息更新了我的答案。所有新的 CPAN 作者应始终阅读On the naming of modules。