Perl中$ VERSION变量的真正目的是什么?

时间:2016-11-17 17:12:16

标签: perl version

我已经读到,在所有Perl脚本中始终包含$VERSION号码被视为良好做法,但我从未完全理解其目的。

通过在脚本中包含版本号,您真正获得了什么?

2 个答案:

答案 0 :(得分:8)

只有模块,只有推送到CPAN的模块才能真正受益于指定$VERSION。除了使用熟悉的名称而不是发明一个新名称,如果你想要访问脚本的版本,它在脚本中的用处并不多。

主要用途:

  • CPAN使用它作为发行版的版本,允许它为同一发行版的不同版本编制索引。

  • cpancpanm使用它来检查已安装的模块是否具有足够高的级别,以满足所需的最低版本的依赖项。

正如brian d foy所提到的,它也可以由use Foo 1.23;进行检查,但大多数人都避免这样做,而是支持在其发行版的META文件中指定所需的依赖项版本。这允许cpancpanm在需要时更新依赖关系(使用use Foo 1.23;使用会导致安装在测试期间失败)。由于缺乏使用该功能,它几乎不是主要用途。

答案 1 :(得分:7)

您可以在use声明中指定模块的最低版本:

 use Foo 1.23;

当Perl加载该模块时,它会查看$VERSION变量以检查它是否等于或大于该数字。这样您就可以获得正确的功能和修复。

CPAN客户端使用$VERSION来确定您是否是最新的,或者是否应安装最新版本的模块。

对于程序或脚本,您通常不需要$VERSION