28092006 perl
ごくたまに、思いつきでLWPを使ったコードを書くことがある。そんな時は、wgetとかcurlで、対象のファイルをローカルに落として、ゴソゴソとテストを繰り返し、最後にLWPをくっつけるというちょっと無駄が多いやりかたをしていた。最近さすがに嫌になってきて、なんとなく気になっていたLWP::UserAgent::WithCacheというモジュールを使ってみた。
なんも考えなくてもキャッシュされるので便利!
キャッシュがある限りそれを読めばいいし~~
って、キャッシュの読み込みどうすればいいんじゃろか?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #!/usr/bin/perl use strict; use warnings; use LWP::UserAgent::WithCache; my %cache_opt = ( 'namespace' => 'lwp-cache', 'cache_root' => "/tmp", 'default_expires_in' => 60 * 60 * 24 * 7 ); my $ua = LWP::UserAgent::WithCache->new(\%cache_opt); my $response = ua->get('http://www.potschi.de/svmtut/svmtut.html'); if ($response->is_success) { print $response->content; # or whatever } else { print $ua->{cache}->get('http://www.potschi.de/svmtut/svmtut.html')->{content}; } |
$uaでできたcache::fileのオブジェクトを引っ張り出してきてgetしたのを出力させてみた。あんまりいい方法とは言えない気がするけどこんな感じでいいのか。