问题
I'm getting this warning (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...?
回答1:
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.
来源:https://stackoverflow.com/questions/6874076/perl-how-to-avoid-diagnostic-messages-from-not-directly-included-modules