use strict; use warnings; use Data::Dumper (); my @list = ( '1,cat', '2,dog', '22,mouse', '11,eel', '001,elk', '13,mink'); my %list = map { split /,/,$_ } @list; #<-- dis print Data::Dumper::Dumper(\%list);