9

我正在维护一个包含 100 多个 .pm 文件的 CPAN 发行版。他们每个人都需要有一个 $VERSION,还是可以只将它包含在主模块中?

对于发行版中的其他模块,包含或不包含 $VERSION 有什么影响?

如果它与问题相关,人们应该只“使用”这个发行版中的主模块。而且,出于这个问题的目的,我不是在问它应该如何在任何文件中指定,只是它是否以任何形式存在。

4

1 回答 1

11

根据经验,许多模块不会将版本号放在每个.pm文件中。如果你做一个快照包(bin cpanp)并查看生成的文件,你会看到。在我的机器上,添加了许多模块的 Perl 5.16.2 的快照包含 7962 个模块,但其中 2070 个包含“undef”作为版本(因此大约四分之一的版本具有 undef)。

就个人而言,我不喜欢这样,所以.pm我的模块中的所有文件——DBD ::Informix——在每个版本中都标记了相同的版本(当前版本是 2013.0118,所有.pm文件都标记为 2013.0118 作为版本number),但是有很多模块(人)不这样做。

  • 您不必为每个.pm文件提供版本号。
  • 总体而言,最好为每个.pm文件提供一个版本号。
  • 我认为为.pm分发中的所有文件提供相同的版本号是明智的。

在我看来,最糟糕的问题是当一个模块更新但有些没有更新时,所以 CPANPLUS 认为模块已经过时,即使安装最新版本并没有改变任何东西。目前我有 5 个这样的模块,我非常想将它们全部删除,尤其是因为我并没有真正使用它们。(有时,这是由安装在新位置的文件触发的,但我认为这不是唯一的原因。我不确定还有什么触发它,但这是一个定期发生的问题。)

于 2013-01-21T06:59:00.837 回答