DB<1> $data = 'key1=val val key2=val key3=val val val val key4=val val' DB<2> %hash = $data =~ /([^ =]+)=([^ =]+(?: [^ =]+(?= |$))*)/g DB<3> x %hash 0 'key1' 1 'val val' 2 'key2' 3 'val' 4 'key3' 5 'val val val val' 6 'key4' 7 'val val'