我正在尝试检查 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
(这是通过使用提琴手或调试我的delphi应用程序中的代码来验证的)。我的脚本(省略 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 哈希吗?