我正在维护一个包含 100 多个 .pm 文件的 CPAN 发行版。他们每个人都需要有一个 $VERSION,还是可以只将它包含在主模块中?
对于发行版中的其他模块,包含或不包含 $VERSION 有什么影响?
如果它与问题相关,人们应该只“使用”这个发行版中的主模块。而且,出于这个问题的目的,我不是在问它应该如何在任何文件中指定,只是它是否以任何形式存在。
我正在维护一个包含 100 多个 .pm 文件的 CPAN 发行版。他们每个人都需要有一个 $VERSION,还是可以只将它包含在主模块中?
对于发行版中的其他模块,包含或不包含 $VERSION 有什么影响?
如果它与问题相关,人们应该只“使用”这个发行版中的主模块。而且,出于这个问题的目的,我不是在问它应该如何在任何文件中指定,只是它是否以任何形式存在。
根据经验,许多模块不会将版本号放在每个.pm
文件中。如果你做一个快照包(b
in cpanp
)并查看生成的文件,你会看到。在我的机器上,添加了许多模块的 Perl 5.16.2 的快照包含 7962 个模块,但其中 2070 个包含“undef”作为版本(因此大约四分之一的版本具有 undef)。
就个人而言,我不喜欢这样,所以.pm
我的模块中的所有文件——DBD ::Informix——在每个版本中都标记了相同的版本(当前版本是 2013.0118,所有.pm
文件都标记为 2013.0118 作为版本number),但是有很多模块(人)不这样做。
.pm
文件提供版本号。.pm
文件提供一个版本号。.pm
分发中的所有文件提供相同的版本号是明智的。在我看来,最糟糕的问题是当一个模块更新但有些没有更新时,所以 CPANPLUS 认为模块已经过时,即使安装最新版本并没有改变任何东西。目前我有 5 个这样的模块,我非常想将它们全部删除,尤其是因为我并没有真正使用它们。(有时,这是由安装在新位置的文件触发的,但我认为这不是唯一的原因。我不确定还有什么触发它,但这是一个定期发生的问题。)