我已将stasis发布内容上传到PAUSE,但它不在index中。
我认为这是因为它没有包,所以我在v0.04中向stasis script添加了一个包声明,如下所示:
#!/usr/bin/env perl
package stasis;
package main;
...
但它仍然没有编入索引。
无论如何都要将此分布编入索引,而不涉及创建样板模块文件? (例如,将lib/stasis.pm
添加到发行版中。
答案 0 :(得分:7)
我相信CPAN不会为脚本编制索引。
IMO你最好的选择是制作一个模块,允许以编程方式执行你的脚本所做的事情(并使脚本使用它)。
你可以放入一个虚假的模块,或者让它认为你的脚本是一个模块(我想在provides中列出它),但如果我是你,我也不会。
答案 1 :(得分:2)
因为package
语句不在*.pm
文件中。
PAUSE索引器为open source。解压缩有点复杂,但是在分发中提取包名称的正则表达式是PAUSE::pmfile::packages_per_pmfile
,这是一个仅用于处理*.pm
文件的方法和包。
PAUSE::dist::_index_by_meta
方法提供了通过元文件中的provides
关键字声明包的替代方法。