如何使用perl更新Cookie的值?

时间:2011-04-05 11:03:44

标签: perl

我在第一个文件中创建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
    }
} 

我收到此错误 “无法在”

处修改非左值子程序调用

2 个答案:

答案 0 :(得分:2)

我认为你的问题出在这行代码中:

$cookies{'NewCookie'}->value = $new_value;

$cookies{'NewCookie'}->value()是一种方法。您正在尝试为方法分配值。我对CGI :: Cookie并不熟悉,但您可能需要将这行代码更改为:

$cookies{'NewCookie'}->value($new_value);

答案 1 :(得分:0)

这是老obv。但只是为了好的措施 - 你需要在更改其价值或任何其他财产后烘烤cookie。在这种情况下像这样:

$cookies{'NewCookie'}->bake;