Perl Eval中的警告

前端之家收集整理的这篇文章主要介绍了Perl Eval中的警告前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要在eval中隐藏警告,但其余代码应该继续发出警告消息.这是我的 –

eval "\$value = $hash->{key}";

现在,$hash-> {key}的值可以是函数调用,如:

$hash->{key} = "function(0.01*$another_var)";

$another_var是undef(或“”)时出现问题.该脚本只是通过以下消息进行解析 –

Argument “” isn’t numeric in
multiplication (*) at (eval 1381) line
1.

有什么建议我可以避免这个吗?
我想的一个选择是解析括号内的值并首先评估它,但它与我正在处理的数据相当复杂.

解决方法

代码包装在无警告块中.

...
{
    no warnings;
    eval "\$value = $hash->{key}";
}
...

您还可以禁用特定类别的警告.有关警告类别的层次结构,请参阅perllexwarn;有关任何特定警告所属的类别,请参阅perldiag.

{
    no warnings qw(uninitialized numeric);
    eval "\$value = $hash->{key}";
}

(blah blah blah标准免责声明,任何一个禁用警告的人都不适合在加入机器的25英尺范围内等等)

猜你在找的Perl相关文章