Perl, how to avoid diagnostic messages from not-directly included modules?

五迷三道 提交于 2020-01-25 08:28:05

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!