我需要在 eval 中隐藏警告,但其余代码应继续抛出警告消息。这是我所拥有的 -
eval "\$value = $hash->{key}";
现在 $hash->{key} 的值可以是一个函数调用,例如:
$hash->{key} = "function(0.01*$another_var)";
当
$another_var
是 undef
(或 ""
)时,问题就来了。脚本只是用下面的消息胡说八道 -有什么建议我可以避免这种情况吗?
我正在考虑的一个选择是解析括号内的值并首先对其进行评估,但它与我正在处理的数据相当复杂。
最佳答案
将您的代码包装在 no warnings
块中。
...
{
no warnings;
eval "\$value = $hash->{key}";
}
...
您还可以禁用特定类别的警告。有关警告类别的层次结构,请参阅
perllexwarn
,有关任何特定警告所属的类别,请参阅 perldiag
。{
no warnings qw(uninitialized numeric);
eval "\$value = $hash->{key}";
}
(等等等等标准免责声明,任何禁用警告的人都不适合进入加法机 25 英尺之内等等)
关于perl - Perl Eval 中的警告,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4798663/