分发中的每个Perl模块是否都需要具有版本号?

时间:2013-01-21 02:16:02

标签: perl cpan perl-module

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

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

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

1 个答案:

答案 0 :(得分:11)

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

就我个人而言,我不喜欢这样,因此我模块中的所有.pm文件 - DBD::Informix - 都在每个版本中标有相同版本(当前版本为2013.0118,所有版本) .pm文件标有2013.0118作为版本号),但是有很多模块(人)以其他方式完成。

  • 您不必为每个.pm文件提供版本号。
  • 总的来说,如果您确实为每个.pm文件提供版本号,那就更好了。
  • 我认为为分发中的所有.pm文件提供相同的版本号是明智的。

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