我在第一个文件中创建cookie,并希望将cookie值更新为第二个文件。我正在使用以下代码来读取和更新cookie的值。但它没有用。
my $new_value = 'modify';
my %cookies = fetch CGI::Cookie;
foreach (keys %cookies) {
### I want to change value of NewCookie
if($_ eq 'NewCookie') {
my $val_cookie = $cookies{'NewCookie'}->value;
warn "\n value of NewCookie =>" . $val_cookie;
$cookies{'NewCookie'}->value = $new_value; ###I don't know is it work or not
}
}
我收到此错误 “无法在”
处修改非左值子程序调用答案 0 :(得分:2)
我认为你的问题出在这行代码中:
$cookies{'NewCookie'}->value = $new_value;
$cookies{'NewCookie'}->value()
是一种方法。您正在尝试为方法分配值。我对CGI :: Cookie并不熟悉,但您可能需要将这行代码更改为:
$cookies{'NewCookie'}->value($new_value);
答案 1 :(得分:0)
这是老obv。但只是为了好的措施 - 你需要在更改其价值或任何其他财产后烘烤cookie。在这种情况下像这样:
$cookies{'NewCookie'}->bake;