my %data; while ($string =~ m/\s+([^\s]+?)=([^\s]*)/g) { $data{$1} = $2; }