use*_*672 4 perl warnings eval undef
我需要在eval中隐藏警告,但其余代码应该继续发出警告消息.这是我的 -
eval "\$value = $hash->{key}";
Run Code Online (Sandbox Code Playgroud)
现在$ hash的值 - > {key}可以是一个函数调用,如:
$hash->{key} = "function(0.01*$another_var)";
Run Code Online (Sandbox Code Playgroud)
$another_var是undef(或"")时出现问题.该脚本只是通过以下消息进行解析 -
参数""在(eval 1381)第1行的乘法(*)中不是数字.
有什么建议我可以避免这个吗?我想的一个选择是解析括号内的值并首先评估它,但它与我正在处理的数据相当复杂.
将代码包装在一个no warnings块中.
...
{
no warnings;
eval "\$value = $hash->{key}";
}
...
Run Code Online (Sandbox Code Playgroud)
您还可以禁用特定类别的警告.请参阅perllexwarn警告类别的层次结构以及perldiag任何特定警告所属的类别.
{
no warnings qw(uninitialized numeric);
eval "\$value = $hash->{key}";
}
Run Code Online (Sandbox Code Playgroud)
(blah blah blah标准免责声明,任何一个禁用警告的人都不适合在加入机器的25英尺范围内等等)
| 归档时间: |
|
| 查看次数: |
2903 次 |
| 最近记录: |