perl -MData::Dumper -lane'push @{ $hash{$F[3]} }, [@F]}{print Dumper \%hash' < data.txt #### $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' ] ] };