Perl, how to avoid diagnostic messages from not-directly included modules?
I'm getting this warning 开发者_StackOverflow社区(after "use diagnostics;");
Parsing of undecoded UTF-8 will give garbage when decoding entities at /usr/lib/perl5/HTML/PullParser.pm line 81.
My program is like this:
...
use diagnostics;
use WWW::Mechanize;
use WWW::Mechanize::Gzip;
...
$m = WWW::Mechanize::GZip->new(
agent => $self->{_agent},
timeout => $self->{_timeout},
);
if (!$m->get($url)) {
die("Impossibile scaricare l'url [$url]");
}
if (!$m->form_number(1)) {
die("Impossibile trovare il form 1");
}
<WARNING IS EMITTED HERE>
...
How to I get rid of it? Or may I safely ignore it?
UPDATE: I just dotice that using WWW::Mechanize->new() insted of WWW::Mechanize::GZip->new() does work silently... So the problem comes from the GZip module...?
First of all, the question you're asking really is the wrong one. You don't want to suppress those warnings, you want to prevent them.
This sounds like WWW::Mechanize::Gzip is buggy. You don't really need it anyway, LWP has gzip support built in. See this thread (WWW::Mechanize is a subclass of LWP::UserAgent) for an explanation on how to achieve similar results in a more sane way.
精彩评论