有没有一种简单的方法来标记错误发送到stderr?为了解决问题,我需要知道何时发生错误.
例:
Dec 10 12:00:00 Can't call method "str" on an undefined value
谢谢!
解决方法
定义用于处理警告和致命错误的自定义处理程序:
use strict; use warnings; $SIG{__WARN__} = sub { warn sprintf("[%s] ",scalar localtime),@_ }; $SIG{__DIE__} = sub { die sprintf("[%s] ",@_ }; warn; die;
输出:
[Fri Dec 11 14:35:37 2009] Warning: something's wrong at c:\temp\foo.pl line 7. [Fri Dec 11 14:35:37 2009] Died at c:\temp\foo.pl line 8.
您可能希望使用gmtime而不是localtime.