Lamento se isso tiver sido solicitado, mas achei difícil procurar.
Eu uso o Perl 5.12 localmente, mas algumas de nossas máquinas usam o Perl 5.8.8 e elas não serão atualizadas por enquanto.
Para auditoria, uso "say" na plataforma 5.12.
Eu escrevi uma função simples para implementar o say na 5.8.8, mas não quero usá-la na 5.12.
Existe uma maneira de usar apenas a minha função say na versão mais antiga do Perl e usar a versão "incorporada" do say na 5.12?
Respostas:
9 para resposta № 1Você pode usar o $^V
variável especial para determinar a versão do interpretador Perl:
BEGIN {
if ($^V ge v5.10.1) { # "say" first appeared in 5.10
require feature;
feature->import("say");
}
else {
*say = sub { print @_, "n" }
}
}
8 para resposta № 2
Isso deve funcionar:
BEGIN{
no warnings "once";
unless( eval{
require feature;
feature->import("say");
1
} ){
*say = sub{
print @_, "n";
}
}
}