如果有人问这个我很抱歉,但我发现很难找到.
我在本地使用Perl 5.12,但我们的一些机器使用Perl 5.8.8,暂时不会更新.
对于审计,我在平台5.12上使用'say'.
我写了一个简单的函数来实现5.8.8的说法,但我不想在5.12上使用它.
有没有办法只在旧版本的Perl上使用我的say函数并使用5.12的'builtin'版本?
您可以使用$^V 特殊变量来确定Perl解释器的版本:
BEGIN {
if ($^V ge v5.10.1) { # "say" first appeared in 5.10
require feature;
feature->import('say');
}
else {
*say = sub { print @_, "\n" }
}
}
Run Code Online (Sandbox Code Playgroud)
这应该工作:
BEGIN{
no warnings 'once';
unless( eval{
require feature;
feature->import('say');
1
} ){
*say = sub{
print @_, "\n";
}
}
}
Run Code Online (Sandbox Code Playgroud)