我正在使用WWW::Mechanize::Cached和Cache :: FileCache,我想从缓存中删除某些URL,但是WWW :: Mechanize :: Cached没有这样的选项。如何从WWW :: Mechanize :: Cached中删除一个url?
我已经通过源代码看去,可以看到缓存使用此行来设置:
$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 $!";
有一个简短的,正确的,独立的例子会很有用。有关基本原理,请参阅http://sscce.org/。编写一个创建缓存的小程序,添加一个对象,尝试使用一个或多个方法或您尝试过的方法删除它,并重现您的错误。这会让你更容易帮助你。 – 2012-08-14 02:24:00
我想我可以,但它只是一个最小的www :: mechanize :: cached程序,上面的尝试从它的缓存中删除。 – 2012-08-14 06:02:44
-1由于缺乏清晰显示问题的工作示例代码。 *您的责任是将问题的质量提高到最高标准。 - 当我第一次需要自己拼凑一些东西,并且某些东西不能按预期工作时,我无法确定这个错误是否在我的额外代码中。更糟的是,那些额外编码的时间浪费了我的时间,我可以花费回答更多问题。更糟糕的是,每个试图回答问题的人都浪费了时间。 – daxim 2012-08-14 09:31:04