I don't know if you have to have a hash of lists, but this could be solved using a hash of hashes. I couldn't find a
.tsv file to try this out (but did try it on a
.csv and it seemed to work).
while(<>){
chomp;
my @s = split /\t/;
my $r_name = $s[0];
my $seq = substr $s[9], 0, 12;
$read2seq{$r_name}{$seq}++;
}
my @keys_with_2_unique_vals =
grep 2 == keys %{$read2seq{$_}}, keys %read2seq;
UPDATE: To account for the change in OP's post. (He wants keys where both values are the same)
Change the grep line to:
my @keys_with_equal_pair_of_vals =
grep 1 == keys %{$read2seq{$_}}, keys %read2seq;