my %pairs = map { chomp; map @$_ == 2 ? @$_ : (), [split /\t/, $_, 2] } ; #### my %pairs = map { chomp; map @$_ == 2 ? @$_ : (@$_ == 1 ? $_->[0] => undef : ()), [split /\t/, $_, 2] } ; #### my %pairs = map { chomp; map @$_ == 2 ? @$_ : (@$_ == 1 ? @$_, undef : ()), [split /\t/, $_, 2] } ;