我正在嘗試編寫一個perl腳本來連接到一個網站,並且在存儲我從Chromium SQLite數據庫中抓取的cookie時遇到了問題。下面是相關的代碼片段:在Perl腳本中使用鉻餅乾
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);
我擦洗我的用戶名和域名,但「說自卸車($行)」語句返回正是我期待的cookie信息。因此,我知道我的SQLite數據庫訪問正在工作。 while循環內部和外部的「say Dumper($ cookie_jar)」返回一個空的cookie_jar。我剛剛開始使用perl進行遊戲,因此在設置數據時,我錯過了某些東西?
這似乎不是這個腳本的中心問題,所以這不是一個真正的答案。 (另外,'$$ arr [0]'和'$ arr - > [0]'是完全等價的。你忘了提到顯而易見的解決方案,數組切片'@ $ arr [0 .. 9]') – amon
我嘗試了所有這些訪問方法,儘管知道引用數組的其他方法(特別是@ $ arr [0..9])非常方便,但它們都沒有解決持久性問題。 – bjornsen