Code: open(IN,$annotationfile) or die "Can't open $annotationfile\n"; while(){ chomp; @data = split(/\t/,$_); $Column1 = @data[0]; $Column2 = @data[1]; $Column3 = @data[2]; $Column4 = @data[3]; $Column5 = @data[4]; $Column6 = @data[5]; $Column7 = @data[6]; $Column8 = @data[7]; $Column9 = @data[8]; $Column10 = @data[9]; $Column11 = @data[10]; print "$Column1\t$Column2....\t$Column11\n"; foreach $_ (1..$#data){ $GOHash{"$Symbols"}{"$GO_Names"} = "$IDs"; foreach $Symbols (@data) { foreach my $name (sort {$a <=> $b} (keys %GOHash) ) { foreach my $annotation (keys %{ $GOHash{$name} }) { print "$name, $annotation: $GOHash{$name}{$annotation}\n"; close(IN); } } } } }