http://qs321.pair.com?node_id=277217
Category: CGI Programming
Author/Contact Info ast@bsd.as
Description: I use this script for parsing values from URL without using CGI module. This is very usefull when you have some small CGI scripts and only want to get the values from a html form. All values will be stored in a hash %INPUT.
my %INPUT;
my ($buffer, $pair, $name, $value);
my @pairs;

if ($ENV{'REQUEST_METHOD'} eq "GET") {
  $buffer = $ENV{'QUERY_STRING'};
} elsif ($ENV{'REQUEST_METHOD'} eq "POST") {
  read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
}

@pairs = split(/&/, $buffer);

foreach $pair (@pairs) {
  ($name, $value) = split(/=/, $pair);
  $value =~ tr/+/ /;
  $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
  $name =~ tr/+/ /;
  $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;

  if (defined $INPUT{$name}) {
    $INPUT{$name} = $INPUT{$name}.",".$value;
  } else {
    $INPUT{$name} = $value;
  }
}