|
|
|||||||||
|
|||||||||
| |||||||||
|
|
|
| |||||||||
![]() |
|
|
«
Previous Thread
|
Next Thread
»
|
Thread Tools | Search this Thread | Rate Thread | Display Modes |
|
|
|
Get inside! Sample the range of functionality easily built with JMSL Library for Time Series Data Analysis, Heat Maps, Portfolio Optimization, Monte Carlo Simulation, Stock Price Charting and more. Download Now! |
|
#1
|
|||
|
|||
|
I have an if statement on my perl page and it reads cookies.
So I only want the cookie sent once if the user already has one. Here is the code: if($paramtest) { $ipaddress = $ENV{REMOTE_ADDR}; $value = sprintf("%08.8x",rand()*0xffffff*$ipaddress); my $c = new CGI::Cookie(-name => 'UniqueID', -value => [$value], -expires => '+3M', -domain => 'komassoc.com', -path => '/'); print "Set-Cookie: $c\n"; %cookies = fetch CGI::Cookie; $id = $cookies{'UniqueID'}->value; }else{ %cookie = fetch CGI::Cookie; $id = $cookies{'UniqueID'}->value; } On the else part, if there is no Cookie, it will give a syntax error because the hash %cookie and the value of $id equal nothing. Does anyone know a way I can get around this? Jonathan Donaghe |
|
#2
|
|||
|
|||
|
As far as i know, you don't need to use the -> operator to get the value out (but I usually assign a handle to CGI, so maybe this works differently. But just to go with what you've got:
Code:
#...the top code
}else{
%cookie = fetch CGI::Cookie;
$id = $cookies{'UniqueID'}->value ? $cookies{'UniqueID'}->value : undef;
}
$id will be undefined if $cookies{'UniqueID'}->value didn't exist (or return true). |
|
#3
|
|||
|
|||
|
Thank You
I actually figured it out a day ago. If you take off the ->value it won't give you an error. It gives you an error when you try to use that property and it is null or undefined.
Jonahtan Donaghe |
![]() |
| Viewing: Dev Shed Forums > Programming Languages > Perl Programming > Help with validating a hash |
| Thread Tools | Search this Thread |
| Display Modes | Rate This Thread |
|
|
|
|