2012-03-05 38 views
0

簡單的Perl 代碼是:如何使用perl中的WWW :: Scripter模塊顯式清除cookie?

 use WWW::Scripter; 
       
     ... 
         
     my $w = WWW::Scripter->new('agent' => 'myAgent'); 
     $w->use_plugin('JavaScript'); 
       
     ... 
       
     $w->get($url); 
       
     ### WWW::Mechanize automatic cookies = good for now 
       
     $w->add_header(Referer => $url); 
     $url = $w->document->getElementsByTagName('a')->[0]->href; 
     $w->get($url); 
       
     ... 
       
     ### WWW::Mechanize automatic cookies = NOT good for now 
     ### ! need to clear cookie jar here ! 
       
     ... 
       
     $w->add_header(Referer => $url); 
     $url = $w->document->getElementsByTagName('a')->[0]->href; 
     $w->get($url); 

一個WWW::Mechanize很好的功能是自動餅乾,這是很好的在某些時候,但有時需要清除的cookie。怎麼樣?

回答

2

WWW::Mechanize的方法cookie_jar返回HTTP::Cookies對象。相關的方法的確名爲clear

+0

因此它會是'$ w-> cookie_jar-> clear'或'$ w-> cookie_jar() - > clear'然後呢? – 2012-03-05 22:24:02

+0

兩者都是有效的,當函數/方法沒有參數時,可以省略空括號。選擇一個[風格](http://p3rl.org/style)並一致地應用它。如果不確定,請諮詢風格指南,其他人的代碼和書籍,例如[PBP](http://oreilly.com/catalog/9780596001735)。 – daxim 2012-03-05 22:28:36

0

Looking at the documentation,難道你不能重置cookie jar屬性嗎?

例如

$w->cookie_jar({}); 
+0

我不確定,但是你的代碼不會禁用cookie嗎?我正在考慮更多關於'$ w-> cookie_jar-> clear'或$ w-> cookie_jar() - >清除的信息。 – 2012-03-05 18:27:03

+0

如果您查看源代碼,https://metacpan.org/source/GAAS/libwww-perl-6.04/lib/LWP/UserAgent.pm#L692,它看起來像一個空的散列,因爲參數設置了一個新的cookie_jar 。 – 2012-03-05 19:25:14