如果有人问过我很抱歉,但我发现很难搜索。
我在本地使用Perl 5.12,但我们的一些机器使用Perl 5.8.8,暂时不会更新。
对于审核我在平台5.12上使用'say'。
我写了一个简单的函数来实现5.8.8的说法,但我不想在5.12上使用它。
有没有办法只在旧版本的Perl上使用我的say函数并使用5.12的'builtin'版本?
答案 0 :(得分:9)
您可以使用$^V
special variable来确定Perl解释器的版本:
BEGIN {
if ($^V ge v5.10.1) { # "say" first appeared in 5.10
require feature;
feature->import('say');
}
else {
*say = sub { print @_, "\n" }
}
}
答案 1 :(得分:8)
这应该有效:
BEGIN{
no warnings 'once';
unless( eval{
require feature;
feature->import('say');
1
} ){
*say = sub{
print @_, "\n";
}
}
}