###################### SET-COOKIE.cgi ######################
#!/usr/bin/perl
use CGI qw/:standard/;
use CGI::Cookie;
use CGI::Carp qw(fatalsToBrowser);
use strict;
use warnings;
my $c = new CGI::Cookie(-name => 'ID',
-value => '987654321',
-domain => '.domain.com',
-expires => '+3M',
-path => '/'
);
my $q = new CGI;
print $q->header(-cookie=>$c);
print "ID cookie is set for 3 months";
######################################################################
The above code is working fine and sets up the cookie as required.
I have problems reading the cookie as follows:
########################## READ-COOKIE.CGI ###########################
#!/usr/bin/perl
use CGI;
use CGI::Cookie;
use CGI::Carp qw(fatalsToBrowser);
use strict;
use warnings;
my %cookies = fetch CGI::Cookie;
my $cookies;
my $id = $cookies{'ID'}->value;
my $q = new CGI;
print $q->header(-cookie=>$cookies);
print "Cookie ID = $id";
print "<br>Thanks\n";
############################################################
IF the cookie already exists the script reads the value perfectly, but if
cookie doesn't exist or I mean for the first time visitor, it gives error:
"Can't call method "value" on an undefined value"
I tried to do something like it: if ($id) {do blah} else {do blah} but that's
not working either.
It's my first time using CGI::Cookie, how can I overcome this problem
Thanks for any input,
Sara.