我有一个有时会发出警告的代码路径。由于这条路径被使用了很多次,我不想在每次通过时都中断。我怎样才能只在它发出警告时才中断?
问问题
929 次
2 回答
3
您可以使用“信号处理程序”发出警告并设置标志,然后在设置标志时中断。
our $warn_flag = 0;
$SIG{__WARN__} = sub { $warn_flag = 1; CORE::warn(@_) };
...
for $i (1 .. 1_000_000_000) {
do_something_that_might_warn();
$DB::single ||= $warn_flag;
$warn_flag = 0;
}
于 2013-02-19T17:53:46.043 回答
1
use warnings qw(FATAL);
这会将警告转换为词法范围内的错误,这将自动导致调试器中断。
于 2013-02-19T18:58:42.797 回答