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

Ste*_*mms 9 perl cpan perl-module

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

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

如果它与问题相关,那么人们应该只是"使用" - 这个分布中的主要模块.并且,出于这个问题的目的,我不是在询问它应该如何在任何文件中指定,只是它是否以任何形式存在.

Jon*_*ler 11

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

就个人而言,我不喜欢这样,所以.pm模块中的所有文件--DBD :: Informix - 都在每个版本中加盖了相同的版本(当前版本是2013.0118,所有.pm文件都标有2013.0118版本)数字),但有很多模块(人)否则这样做.

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

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