私はWWW::Mechanize::Cachedを Cache::FileCache と一緒に使用しています。キャッシュから特定の URL を時々削除したいのですが、WWW::Mechanize::Cached にはそのようなオプションがありません。
ソースコードを調べたところ、次の行を使用してキャッシュが設定されていることがわかります。
$self->cache->set( $req, freeze( $response ) ) if $should_cache;
そこで、次のコードを使用してキャッシュからアイテムを削除しようとしました。
$cache->remove($mech->response->request) or warn "cannot remove $!";
また
$cache->remove($mech->response->request->as_string) or warn "cannot remove $!";
しかし、「そのようなファイルまたはディレクトリを削除できません」という警告が表示されます。
次のアイデアも見つけましたが、どれもうまくいかないようです https://groups.google.com/forum/?fromgroups#!topic/perl-cache-discuss/M_wXFNL5MdM[1-25]
if ( $want_to_delete_url ) {
$mech->cache->remove( $url );
}
$mech->get( $url );
http://www.perlmonks.org/?node_id=564208
my $url = "http://www.rulez.sk/headers.php";
my $req = GET $url, 'Accept-Encoding' => 'identity';
$cache->remove($req->as_string) or print "cannot remove $!";