my %p = (); foreach (split /&/, $ENV{'QUERY_STRING'}) { $p{$1} = $2 if /^([^=]+)=(.+)$/; }