私が苦労しているのは、LWP::UserAgent がアクセサを提供しないため、Cookie の名前を指定することで、cookie_jar 内の Cookie について知りたいことをすべて取得できるからです。cookie_jar に scan() メソッドがあることはわかっていますが、非常に基本的なものにコールバックを提供するには、多くのオーバーヘッドがあるようです。これは私が今持っているものです:
#!/usr/bin/env perl
use strict;
use warnings;
use Data::Dump qw (dump);
use WWW::Mechanize;
my $mech = WWW::Mechanize->new;
$mech->get( 'http://www.nytimes.com' );
my %cookies = ();
$mech->cookie_jar->scan( \&check_cookies );
dump \%cookies;
sub check_cookies {
my @args = @_;
$cookies{ $args[1] } = {
version => $args[0],
val => $args[2],
path => $args[3],
domain => $args[4],
port => $args[5],
path_spec => $args[6],
secure => $args[7],
expires => $args[8],
discard => $args[9],
hash => $args[10],
};
}
スクリプトの出力は次のようになります。
{ adxcs => {
discard => 1,
domain => ".nytimes.com",
expires => undef,
hash => {},
path => "/",
path_spec => 1,
port => undef,
secure => undef,
val => "-",
version => 0,
},
RMID => {
discard => undef,
domain => ".nytimes.com",
expires => 1374340257,
hash => {},
path => "/",
path_spec => 1,
port => undef,
secure => undef,
val => "02b4bc821c00500991212ba2",
version => 0,
},
}
そのため、名前で Cookie に簡単にアクセスできますが、これを行う簡単な方法があるかどうか、または私が知らない便利なモジュールがあるかどうか疑問に思っていました。