Perl,如何避免来自非直接包含模块的诊断消息?

时间:2011-07-29 13:42:01

标签: perl diagnostics www-mechanize

我收到此警告(在“使用诊断程序”之后);

解析未解码的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-&gt; new()insted WWW :: Mechanize :: GZip-&gt; new()确实可以无声地工作......所以问题来自GZip模块......?

1 个答案:

答案 0 :(得分:4)

首先,你问的问题确实是错误的。 你不想压制这些警告,你想阻止它们

这听起来像WWW :: Mechanize :: Gzip是错误的。无论如何你都不需要它,LWP内置了gzip支持。请参阅this thread(WWW :: Mechanize是LWP :: UserAgent的子类),了解如何以更加理智的方式获得类似的结果