请问Perl中怎样捕获warning

请问Perl中怎样捕获warning

有一批文件是euc-jp编码的,现在想把它转化成utf8编码的,
但是由于原来的某些文件中有乱码,所以会出现warning。

例如:
L123:   print OUT <IN>;
euc-jp "\x86" does not map to Unicode at ./sbin/euc2utf8.pl line 123, <IN> line 766.
euc-jp "\xA7" does not map to Unicode at ./sbin/euc2utf8.pl line 123, <IN> line 766.

由于是批量转换,所以想提示一下是哪个文件有问题。
问题就是怎样能捕获123行抛出的warning。

Perl中有没有类似$!或$@的可以记录warning的特殊变量啊,
或者其他能捕获warning的方法啊。

请达人们帮帮忙了,谢谢!
perldoc -f warn

QUOTE:
No message is printed if there is a $SIG{__WARN__} handler
               installed.  It is the handler’s responsibility to deal with the
               message as it sees fit (like, for instance, converting it into
               a "die").  Most handlers must therefore make arrangements to
               actually display the warnings that they are not prepared to
               deal with, by calling "warn" again in the handler.  Note that
               this is quite safe and will not produce an endless loop, since
               "__WARN__" hooks are not called from inside one.

可以用$SIG{__WARN__} handler来捕获
3x churchmice.

问题终于解决了,

my $orig_sigwarn = $SIG{__WARN__};
local $SIG{__WARN__} = sub {
                #TODO something
                };

最后把值再还原就OK了。
再次感谢churchmice。