2011-04-05 79 views
2

我在第一個文件中創建cookie,並且想要將cookie值更新爲第二個文件。我正在使用以下代碼來讀取和更新cookie的值。但它不起作用。如何使用perl更新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

我覺得你的問題是在這行代碼:

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

$cookies{'NewCookie'}->value()是方法。您正在嘗試爲方法分配一個值。我不是那個熟悉的CGI ::曲奇,但也許你需要改變該行的代碼看起來像這樣:

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

感謝Eric Johnson的回覆它正在工作。現在的問題是,我怎麼能寫這個新的價值瀏覽器?我用 my $ q = new CGI; $ q-> header(-COOKIE => $ cookies {'NewCookie'}); ###但它不工作。 – user380979 2011-04-05 12:22:53

0

這一個是老OBV。但只是爲了好的措施 - 您需要在更改其價值或任何其他財產後烘烤餅乾。在這種情況下,如下所示:

$cookies{'NewCookie'}->bake;