我的机器上安装的默认 Perl 版本是 5.8.7。当我在内部运行脚本时切换到另一个 perl 版本 (v5.10.1) 执行以下操作:
my $perl_5_10 = "/opt/perl_5.10.1/bin";
$ENV{'PATH'} = $perl_5_10 ":" . $ENV{'PATH'};
Run Code Online (Sandbox Code Playgroud)
现在,我必须检查 perl 版本,我这样做:
## PERL: need perl version >= 5.10!
if ($] < 5.010000)
{
## VERSION ERROR!
}
my $perl_cmd = "perl --version";
my $perl_str=`$perl_cmd`;
print "PERL VERSION = " . $perl_str; ## this clearly print 5.10.1
Run Code Online (Sandbox Code Playgroud)
它返回错误,因为使用的版本是 5.8.7,这很正常,因为我使用该版本运行脚本。但我的问题是:
如何检查新的 perl 版本是否 >= 5.10.1 ?
前 3 位小数为颠覆,后 3 位小数为修订。因此使用
if ($] >= 5.010001)
{
## We're all good. Greater than 5.10.1
}
Run Code Online (Sandbox Code Playgroud)
我主要使用 5.18.2,因此我的$]
equals 5.018002
。
对于替代方法请查看perlvar $PERL_VERSION or $^V
和use VERSION