在调用“值”方法之前测试perl cookie /值是否存在

问题描述 投票:1回答:1

如果已经存在Cookie,则可以正常工作

use CGI::Cookie;
my %cookie = CGI::Cookie->fetch;
my $val = $cookie{'MY_COOKIE'}->value;

如果没有cookie,则页面失败,并显示此错误。

无法在/file.cgi第23行的未定义值上调用方法“ value”。

此测试会产生相同的错误...大概是因为它试图做同样的事情

if ( $cookie{'MY_COOKIE'}->value ) {
  $val = $cookie{'MY_COOKIE'}->value;
}

我如何检测是否没有cookie或它的值为空?

谢谢。

perl cookies cgi
1个回答
2
投票

尝试

my $myCookie = $cookie{'MY_COOKIE'};
my $val = defined($myCookie) ? $myCookie->value : '';

OR

if( defined( my $myCookie = $cookie{'MY_COOKIE'} )) {
   my $val = $myCookie->value;
   # ...
}
© www.soinside.com 2019 - 2024. All rights reserved.