# subroutine name: get_cookies # Extracts all cookies from 'COOKIE' or 'HTTP_COOKIE' environment variable # Returns: hash of cookies (cookie_name => cookie_value) sub get_cookies { my %cookies; my ($key, $value); foreach my $expression ( split (/;\s*/, "$ENV{'COOKIE'};$ENV{'HTTP_COOKIE'}") ) { ($key,$value) = split (/=/, $expression); if ($key ne "") { # URL-decode values $value =~ tr/+/ /; # pluses become spaces $value =~ s/%([0-9a-fA-F]{2})/pack("c",hex($1))/ge; $cookies{$key} = $value; } }; return %cookies; }