我写信,试图确保新的网络套接字连接具有特定的Cookie内似乎什么搜索是阵列的Perl中的数组(网络插座)
这里是一些代码的连接细节的摘录我接收在所述服务器,这是我使用print Dumper($handshake->req->cookies);
$VAR1 = bless({
'pairs' => [
[
'ZMSESSID',
'e63n6uk59entuvoed1o76u1hm6'
]
]
}, 'Protocol::WebSocket::Cookie');
我现在需要搜索阵列的“对”阵列内,以查看是否存在一个名为“ZMSESSID”的Cookie打印。它可能存在也可能不存在,并且可能有其他cookie。
这样做的正确方法是什么?
我尝试:
if ($handshake->req->cookies->pairs)
{
my @foo = $handshake->req->cookies->pairs;
my $match = grep { $_->[0] eq 'ZMSESSID'} @foo ;
print "$match\n";
}
但是,这始终打印0,而不是1
彼得,对不起,我是一个初学者。我有几个后续:我试着最后一个例子:if($ handshake-> req-> cookies-> ZMSESSID) - 通过包“Protocol无法定位对象方法”ZMSESSID“Protocol :: WebSocket :: Cookie“在你的第一个例子中,你正在使用$ _ ==>我需要将它映射到$ handshake-> req吗? – user1361529
所以我用for循环取得了一些进展,但似乎无法弄清楚如何处理cookie存在与否的情况我的代码位于http://pastebin.com/4CbdE5BE - >当“cookie定义”字段实际存在时,“if defined”出现“不是ARRAY引用” 。我试图处理的情况下,它没有崩溃时,没有饼干,但最终弄乱了相反的情况。我该如何处理? – user1361529
屁股很痛苦,看起来好像cookie列表是空,$ handshake-> req-> cookies是一个空数组,如果它有cookies,它是一个哈希引用。所以我最终通过这样做来解决它:if(UNIVERSAL :: isa($ handshake-> req-> cookies, “哈希”))(然后做你的东西) – user1361529