in reply to Question about URL query strings

You mistake is (almost assuredly) in assigning it to a hash. Rather than code that says:
my %param = URI->new('/?foo=Zoo&foo=aha')->query_form;
you should respect that you have multiple values associated with a given key, and use hashes of arrays (perllol, HASHES OF ARRAYS):
my @list = URI->new('/?foo=Zoo&foo=aha')->query_form; my %param; while (@list) { push @{$param{shift @list}}, shift @list; }
or something similar.

#11929 First ask yourself `How would I do this without a computer?' Then have the computer do it the same way.