cgi スクリプトで Cookie の値を検査しようとしています。私のテストスクリプトは次のようになります
#!/usr/bin/perl -w
use DBI;
use CGI qw/:standard/;
use CGI::Cookie;
my $cgiH = CGI->new;
print header;
print start_html(-title=>'Cookie Terms'), h1("Cookie Terms"), "<hr>\n";
%cookies = CGI::Cookie->fetch;
foreach $k (keys %cookies) {
my $term = "$cookies{$k}";
my $term =~ s/SubjectTerm//;
print "at $k is $term \n";
}
print end_html;
スクリプトへの関連する入力 (HTTP GET から) は次のとおりです。
Cookie: SubjectTerm1=ponies
Cookie: SubjectTerm2=horses
(これは、フィドラーを使用するか、デルファイ アプリでコードをデバッグすることによって検証されます)。私のスクリプトの結果(HTMLラッパーを省略)は次のいずれかです
at SubjectTerm1 is
at SubjectTerm2 is
または、印刷ステートメントを次のように変更した場合
print "at $k is $cookies{$k}\n";
それは
at SubjectTerm1 is SubjectTerm1=ponies; path=/
at SubjectTerm2 is SubjectTerm2=horses; path=/
たどり着きたいのはこんな感じ
at SubjectTerm1 is ponies
at SubjectTerm2 is horses
ハッシュの使用法について何かが欠けていることは知っていますが、それが何であるかを完全に理解することはできません。%cookies ハッシュを正しくアドレス指定していませんか?