my %cp = map { my ($label, $list) = (split(/:/), ''); $label => [ split /,/, $list ] } @ex; #### my %cp; foreach (@ex) { my ($label, $list) = (split(/:/), ''); $cp{$label} = [ split /,/, $list ]; }