my %h = map { chomp; /:\s+/ ? ( $` => [split ';', $'] ) : () } ; #### my %h = map { $_->[0] => [split ';', $_->[1]] } map { chomp; [split /:\s+/] } ;