in reply to What data structure must I use for this problem?

How about a Hash of Arrays (HoA) like so? (Assume your file is called data.txt)

perl -MData::Dumper -lane'push @{ $hash{$F[3]} }, [@F]}{print Dumper \ +%hash' < data.txt

Output:

$VAR1 = { 'U2ZRR1' => [ [ 'Secretin_N', 'PF03958', '82', 'U2ZRR1' ], [ 'Pfam-B_1479', 'PB001479', '704', 'U2ZRR1' ], [ 'Pfam-B_2175', 'PB002175', '114', 'U2ZRR1' ] ], 'A1AJD0' => [ [ 'DUF490', 'PF04357', '379', 'A1AJD0' ], [ 'Pfam-B_5656', 'PB005656', '259', 'A1AJD0' ] ], 'T2MWK7' => [ [ 'STN', 'PF07660', '52', 'T2MWK7' ] ], 'T2MVV9' => [ [ 'Pfam-B_2175', 'PB002175', '114', 'T2MVV9' ] ], 'T2MZK3' => [ [ 'Secretin_N_2', 'PF07655', '98', 'T2MZK3' ] ], 'A0KIJ1' => [ [ 'AsmA_2', 'PF13502', '220', 'A0KIJ1' ], [ 'AsmA_2', 'PF13502', '220', 'A0KIJ1' ] ] };

jeffa

L-LL-L--L-LL-L--L-LL-L--
-R--R-RR-R--R-RR-R--R-RR
B--B--B--B--B--B--B--B--
H---H---H---H---H---H---
(the triplet paradiddle with high-hat)