【问题标题】:Perl, how to avoid diagnostic messages from not-directly included modules?Perl,如何避免来自不直接包含的模块的诊断消息?
【发布时间】:2011-07-29 13:42:01
【问题描述】:

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

在 /usr/lib/perl5/HTML/PullParser.pm 第 81 行解码实体时,解析未解码的 UTF-8 会产生垃圾。

我的程序是这样的:

...
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 模块...?

【问题讨论】:

    标签: perl diagnostics www-mechanize


    【解决方案1】:

    首先,您提出的问题确实是错误的。 您不想抑制这些警告,而是想阻止它们

    这听起来像 WWW::Mechanize::Gzip 有问题。无论如何,你并不真的需要它,LWP 内置了 gzip 支持。请参阅this thread(WWW::Mechanize 是 LWP::UserAgent 的子类),了解如何以更理智的方式实现类似结果。

    【讨论】:

    • 我明白了。谢谢。你是对的,我不想抑制任何警告,我想了解它们来自哪里......但是,我如何填写表单字段并使用 LWP::UserAgent 提交?
    • 我不是建议放弃 WWW::Mechanize...
    • 我明白了...您建议使用 WWW::Mechanize 代替 WWW::Mechanize::Gzip,并使用 LWP 处理压缩内容,对吗?
    猜你喜欢
    • 2016-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-16
    • 1970-01-01
    • 1970-01-01
    • 2014-01-19
    相关资源
    最近更新 更多