If you look at the source of Mail::IMAPClient, you'll see this comment: "#local $SIG{__WARN__} = \&Carp::cluck; #DEBUG" which hints that the author uses $SIG{__WARN__} for this purpose (and Tk::Carp, pointed out by Corion, appears to work the same way). The following seems to work for me, though it's always worth noting that changes to $SIG{__WARN__} are global, so it's possible you might step on another module's toes or that one might step on yours. This is true even with local, unless you know exactly what the call stack looks like. You can of course limit the effects by using local $SIG{__WARN__} only in those blocks where you actually make calls to Mail::IMAPClient, that should help limit your exposure to such potential problems.
use warnings;
use strict;
package Foo {
use Carp;
sub bar {
carp "Foo Bar";
}
}
use Mojo::Log;
my $log = Mojo::Log->new;
local $SIG{__WARN__} = sub { $log->warn(@_) };
Foo::bar();
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|