use strict; use warnings; use Data::Dumper; my $str = 'foo=bar&baz=qux&one=1&two=2'; my %hash; my @pair = split '&',$str; for my $pair (@pair) { my ($key,$val) = split '=',$pair; $hash{$key} = $val; } print Dumper \%hash;