use Data::Dumper; %hash = (split /\:/, (split /;/ $string)); print Dumper \%hash;