Perl中有类似的东西吗?
解决方法 PHP的这个功能很疯狂,应该尽可能避免.Perl有两种例外:致命错误和警告.警告可以由Perl本身发出,也可以由用户代码发出.
在某个静态/词法范围内,Perl的内置警告可以关闭,如:
use warnings;foo();sub foo { no warnings 'uninitialized'; # recommended: only switch of specific categorIEs warn "hello\n"; 1 + undef; # Otherwise: Use of uninitialized value in addition (+)}
输出:你好STDERR.
但这不能用于从您调用的代码中删除警告(动态范围).这也不会使用户定义的警告静音.
在这种情况下,您可以为__WARN__伪信号编写处理程序:
use warnings;{ local $SIG{__WARN__} = sub { }; foo(); print "bye\n";}sub foo { warn "hello\n"; 1 + undef;}
输出:在STDOUT上再见.
我们可以把它抽象成一个函数套接字:
sub muffle { my $func = shift; local $SIG{__WARN__} = sub { }; return $func->(@_);}muffle(\&foo,1,2,3); # foo(1,3)
然而,这是一件令人难以置信的愚蠢行为:
>警告指出潜在的问题和错误.修复那些而不是忽略它们.
>对于您不感兴趣的类别,请勿首先激活内置警告.很多人都非常高兴unf值字符串化为空字符串,并且不希望任何警告.
这里概述的策略不处理致命异常,而是使用Try::Tiny
.
以上是内存溢出为你收集整理的如何抑制Perl函数的警告?全部内容,希望文章能够帮你解决如何抑制Perl函数的警告?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)