Perl, как избежать диагностических сообщений от не напрямую включенных модулей? - PullRequest
0 голосов
/ 29 июля 2011

Я получаю это предупреждение (после «используйте диагностику;»);

Разбор недекодированного UTF-8 даст мусор при декодировании сущностей в / usr / lib / perl5 /HTML / PullParser.pm строка 81.

Моя программа такова:

...
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>

...

Как мне от нее избавиться?Или я могу спокойно проигнорировать это?

ОБНОВЛЕНИЕ: Я просто ставлю точку, что использование WWW :: Mechanize-> new () вместо WWW :: Mechanize :: GZip-> new () делаетработать тихо ... Значит проблема в модуле GZip ...?

1 Ответ

4 голосов
/ 29 июля 2011

Прежде всего, вопрос, который вы задаете, действительно неправильный. Вы не хотите подавлять эти предупреждения, вы хотите предотвратить их .

Это звучит как WWW :: Mechanize :: Gzip глючит. В любом случае вам это действительно не нужно, в LWP встроена поддержка gzip. См. этот поток (WWW :: Mechanize является подклассом LWP :: UserAgent) для объяснения того, как добиться подобных результатов в более вменяемым образом.

...