6

このスクリプト:

use warnings FATAL => 'all';

warn 'warning';
die 'death';

...「警告」がログに記録されますが、その時点で死ぬことはなく、代わりに「死」で死にます。

$main::SIG{__DIE__}開発中に基本的に die() メッセージをブラウザに吐き出すようにオーバーライドする mod_perl モジュールがありますが、それは触れませんSIG{__WARN__}

これは、Windows Server 2003 上の perl 5.10.1 で、PerlSwitches に「-w」が指定されています。

4

2 に答える 2

11

It doesn't seem to work because your test isn't testing what you want to test. Try this:

use warnings FATAL => 'all';

print undef;
die 'death';

Just as a no warnings will not prevent warn from working, warnings FATAL will not make warn die.

于 2013-06-11T15:08:01.903 に答える
9
于 2013-06-11T15:07:49.047 に答える