{key}"; 现在 $hash->{key} 的值可以是一个函数调用,-6ren">
gpt4 book ai didi

perl - Perl Eval 中的警告

转载 作者:行者123 更新时间:2023-12-04 22:25:03 24 4
gpt4 key购买 nike

我需要在 eval 中隐藏警告,但其余代码应继续抛出警告消息。这是我所拥有的 -

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

现在 $hash->{key} 的值可以是一个函数调用,例如:
$hash->{key} = "function(0.01*$another_var)";

问题出现在 $another_varundef (或 "")。脚本只是用下面的消息胡说八道 -

Argument "" isn't numeric in multiplication (*) at (eval 1381) line 1.



有什么建议我可以避免这种情况吗?
我正在考虑的一个选择是解析括号内的值并首先对其进行评估,但它与我正在处理的数据相当复杂。

最佳答案

将您的代码包装在 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com