3

LWP::UserAgent モジュールを使用して URL をリダイレクトし、最終的な宛先 URL を見つけて MySQL データベースに保存する、かなり単純な perl スクリプトがあります。問題は、スクリプトが時々次のような警告を報告することです。

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 の日付に何らかの形で関連していると考えました。

警告はスクリプトに影響を与えていないようですが、この問題の原因をよりよく理解するための助けと、それを解決する方法、または少なくとも警告メッセージを抑制する方法についてのアドバイスをいただければ幸いです。よろしくお願いします。

4

2 に答える 2

7

local $SIG{__WARN__}アップグレードを選択できない場合は、もちろんハンドラーを使用して常に警告を除外できます。

{
    local $SIG{__WARN__} = sub {
        warn @_ unless $_[0] =~ m(^.* too (?:big|small));
    };
    # your code here.
}
于 2010-02-02T23:44:56.120 に答える
5

変更点を参照してください:

2009-10-06 リリース 5.833

ジスル・アス (5):

  • 有効期限がずっと先の Cookie に対処する [RT#50147]
  • エポック以前に有効期限が切れる Cookie を処理する [RT#49467]

LWPの最新バージョンにアップグレードする必要があるようです。

于 2010-02-02T16:33:05.423 に答える