如何在perl调试器中打破警告?

时间:2013-02-19 17:36:15

标签: perl debugging

我有一个有时会发出警告的代码路径。由于这条路径经常使用很多次,所以我不希望每次通过都会中断。我怎样才能在发出警告的时候打破?

2 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:1)

use warnings qw(FATAL);

这会将警告转换为词法范围内的错误,这会自动导致调试器中断。