我正在尝试编写一个 perl 脚本来连接到一个网站,并且在存储我从 Chromium SQLite 数据库中获取的 cookie 时遇到了问题。这是相关的代码片段:
use HTTP::Cookies;
use Data::Dumper;
use feature 'say';
use DBI;
my $cookie_jar = HTTP::Cookies->new();
my $dbh = DBI->connect("dbi:SQLite:dbname=/home/{user}/.config/chromium/Default/Cookies",
"", "");
my $sth = $dbh->prepare("select * from cookies where host_key='{domain}'");
$sth->execute();
my $rows;
while ($rows = $sth->fetch()) {
say Dumper($rows);
$cookie_jar->set_cookie(@$rows[0],
@$rows[1],
@$rows[2],
@$rows[3],
@$rows[4],
@$rows[5],
@$rows[6],
@$rows[7],
@$rows[8],
@$rows[9]);
say Dumper($cookie_jar);
}
$sth->finish();
$dbh->disconnect();
say Dumper($cookie_jar);
我清理了我的用户名和域,但“say Dumper($rows)”语句返回的正是我期望的 cookie 信息。因此,我知道我的 SQLite 数据库访问正常。while 循环内外的“say Dumper($cookie_jar)”返回一个空的 cookie_jar。我刚开始玩 perl,所以在设置数据方面我缺少什么吗?