我已经读到,在所有Perl脚本中始终包含$VERSION
号码被视为良好做法,但我从未完全理解其目的。
通过在脚本中包含版本号,您真正获得了什么?
答案 0 :(得分:8)
只有模块,只有推送到CPAN的模块才能真正受益于指定$VERSION
。除了使用熟悉的名称而不是发明一个新名称,如果你想要访问脚本的版本,它在脚本中的用处并不多。
主要用途:
CPAN使用它作为发行版的版本,允许它为同一发行版的不同版本编制索引。
cpan
和cpanm
使用它来检查已安装的模块是否具有足够高的级别,以满足所需的最低版本的依赖项。
正如brian d foy所提到的,它也可以由use Foo 1.23;
进行检查,但大多数人都避免这样做,而是支持在其发行版的META文件中指定所需的依赖项版本。这允许cpan
和cpanm
在需要时更新依赖关系(使用use Foo 1.23;
使用会导致安装在测试期间失败)。由于缺乏使用该功能,它几乎不是主要用途。
答案 1 :(得分:7)
您可以在use
声明中指定模块的最低版本:
use Foo 1.23;
当Perl加载该模块时,它会查看$VERSION
变量以检查它是否等于或大于该数字。这样您就可以获得正确的功能和修复。
CPAN客户端使用$VERSION
来确定您是否是最新的,或者是否应安装最新版本的模块。
对于程序或脚本,您通常不需要$VERSION
。