为什么我的 CPAN 分布没有被 PAUSE 索引?

Why isn't my CPAN distribution indexed by PAUSE?

我已经上传了我的 stasis distribution to PAUSE, but it isn't in the index

我认为这是因为它不包含包,所以我在 v0.04 中向 stasis script 添加了一个包声明,如下所示:

#!/usr/bin/env perl
package stasis;
package main;
...

但仍未编入索引。

有没有办法在不涉及创建样板模块文件的情况下为这个分发建立索引? (例如,将 lib/stasis.pm 添加到分布中)。

我相信 CPAN 不会索引脚本。

IMO 你最好的选择是制作一个模块,允许以编程方式执行你的脚本所做的事情(并让脚本使用它)。

您可以放入一个假模块或让它认为您的脚本是一个模块(我认为将它列在 provides 中是可行的),但如果我是您,我不会这样做。

因为您的 package 语句不在 *.pm 文件中。

PAUSE 索引器是 open source. It is a little complicated to unpack, but the regex for extracting a package name in a distribution is in PAUSE::pmfile::packages_per_pmfile,它是一种方法和包,仅用于处理 *.pm 个文件。

PAUSE::dist::_index_by_meta 方法提供了通过图元文件中的 provides 关键字声明包的替代方法。