加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Perl Eval中的警告

发布时间:2020-12-15 23:26:34 所属栏目:大数据 来源:网络整理
导读:我需要在eval中隐藏警告,但其余代码应该继续发出警告消息.这是我的 – eval "$value = $hash-{key}"; 现在,$hash- {key}的值可以是函数调用,如: $hash-{key} = "function(0.01*$another_var)"; $another_var是undef(或“”)时出现问题.该脚本只是通过以下
我需要在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英尺范围内等等)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读