我在Perl脚本中有两行代码非常接近,可能会引发__WARN__
。如果第一行引发了警告,则我希望仅从函数中返回,而不尝试继续执行。
我知道如何在这两行之前设置处理程序,以便可以报告错误等:
local $SIG{__WARN__} = sub {
my $e = shift;
# log the error etc.
return;
};
# possibly warning-resulting line 1
# possibly warning-resulting line 2
但是,这对于两行都发生的情况来说都是适用的。我宁愿它只捕捉到第一个实例并从函数中返回。但是在处理程序中的返回值只返回处理程序,而不是外部函数。
在处理信号时是否有一种方法可以从函数中返回?