如何抑制Perl函数的警告?
发布时间:2020-12-15 23:31:04 所属栏目:大数据 来源:网络整理
导读:在 PHP中,您可以在函数调用前使用@来抑制返回的警告. Perl中有类似的东西吗? 解决方法 PHP的这个功能很疯狂,应该尽可能避免. Perl有两种??例外:致命错误和警告.警告可以由Perl本身发出,也可以由用户代码发出. 在某个静态/词法范围内,Perl的内置警告可以关
在
PHP中,您可以在函数调用前使用@来抑制返回的警告.
Perl中有类似的东西吗? 解决方法
PHP的这个功能很疯狂,应该尽可能避免.
Perl有两种??例外:致命错误和警告.警告可以由Perl本身发出,也可以由用户代码发出. 在某个静态/词法范围内,Perl的内置警告可以关闭,如: use warnings; foo(); sub foo { no warnings 'uninitialized'; # recommended: only switch of specific categories warn "hellon"; 1 + undef; # Otherwise: Use of uninitialized value in addition (+) } 输出:你好STDERR. 但这不能用于从您调用的代码中删除警告(动态范围).这也不会使用户定义的警告静音. 在这种情况下,您可以为__WARN__伪信号编写处理程序: use warnings; { local $SIG{__WARN__} = sub { }; foo(); print "byen"; } sub foo { warn "hellon"; 1 + undef; } 输出:在STDOUT上再见. 我们可以把它抽象成一个函数套接字: sub muffle { my $func = shift; local $SIG{__WARN__} = sub { }; return $func->(@_); } muffle(&;foo,1,2,3); # foo(1,3) 然而,这是一件令人难以置信的愚蠢行为: >警告指出潜在的问题和错误.修复那些而不是忽略它们. 这里概述的策略不处理致命异常,而是使用 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |