在Perl LWP :: UserAgent中抑制“Day too big”警告

时间:2010-02-02 16:22:46

标签: perl lwp lwp-useragent

我有一个相当简单的perl脚本,它使用LWP :: UserAgent模块通过重定向来跟踪URL,以找到它然后存储在MySQL数据库中的最终目标URL。问题是脚本不时会报告如下所示的警告:

Day too big - 25592 > 24855
Sec too small - 25592 < 74752
Sec too big - 25592 > 11647
Day too big - 25592 > 24855
Sec too small - 25592 < 74752
Sec too big - 25592 > 11647

警告没有提供任何其他详细信息,说明为什么会发生这种情况或哪个模块导致问题,但我很确定它与LWP :: UserAgent有关。

我正在使用以下代码初始化代理:

use LWP::UserAgent;
my $ua = LWP::UserAgent->new(cookie_jar => { },requests_redirectable => [ ]);
$ua->agent('Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:9.9.9.9) Gecko/20079999 Firefox/2.0.0.1');
$ua->timeout(10);

我在线搜索,我发现的唯一结果是以下线程从未解决http://www.mail-archive.com/libwww@perl.org/msg06515.html。线程作者认为这些警告与LWP :: UserAgent模块捕获的cookie日期有某种关联。

警告似乎没有影响脚本,但我希望有任何帮助,以更好地了解可能导致此问题的原因以及如何解决它或至少抑制警告消息的建议。在此先感谢您的帮助!

2 个答案:

答案 0 :(得分:7)

如果升级不是您的选择,您当然可以使用local $SIG{__WARN__}处理程序过滤掉警告。

{
    local $SIG{__WARN__} = sub {
        warn @_ unless $_[0] =~ m(^.* too (?:big|small));
    };
    # your code here.
}

答案 1 :(得分:5)

请参阅Changes

  

2009-10-06 Release 5.833

     

Gisle Aas(5):

     
      
  • 处理将来到期的Cookie [RT#50147]
  •   
  • 处理在纪元[RT#49467]
  • 之前或之前过期的Cookie   

您似乎需要升级到最新版本的LWP