split up query string and decode pairs into $val and $key
insert $key into params hash with value $val
####
foo.cgi?foo=mashed&foo=fried&foo=boiled&foo=tofu
####
if (defined $params{$key} && ref($params{$key}) eq "ARRAY") {
# key has been seen at least twice now
# the value is a an anonymous array, push the new value
push (@{$params{$key}}, $val);
}
elsif (defined($params{$key})) {
# second time key has been seen
# the value is a scalar, 'turn' it into an anonymous array
$params{$key} = [$params{$key}, $val];
}
else {
# first time this key has been seen
# assign the value as a scalar
$params{$key} = $val;
}