use strict; use warnings; use Data::Dumper; open my $inFH, q{<}, \ <<'END_OF_FILE' or die qq{open: $!\n}; >1gmz_B mol:protein length:122 PHOSPHOLIPASE A2 Length = 122 Score = 103 bits (233), Expect = 9e-23 Identities = 56/124 (45%), Positives = 67/124 (54%), Gaps = 12/124 (9%) Query: 2 LWQFNGMIKCKIPSSEPLLDFNNYGCYCGLGGSGTPVDDLDRCCQTHDNCYKQAKKLDSC 61 LWQF MI K P + YGCYCG+GG G P D DRCC HD CY KL SC Sbjct: 2 LWQFGKMI-LKETGKLPFPYYVTYGCYCGVGGRGGPKDATDRCCFVHDCCY---GKLTSC 57 Query: 62 KVLVDNPYTNNYSYSCSNNEITCSSENNACEAFICNCDRNAAICFSK--VPYNKEHKNLD 119 K P T+ YSYS + I C EN+ C IC CD+ AA+CF + YNK++ + Sbjct: 58 K-----PKTDRYSYSRKDGTIVC-GENDPCRKEICECDKAAAVCFRENLDTYNKKYMSYL 111 Query: 120 KKNC 123 K C Sbjct: 112 KSLC 115 >1b4w_A mol:protein length:122 PROTEIN (PHOSPHOLIPASE A2) Length = 122 Score = 95.7 bits (215), Expect = 2e-20 Identities = 46/105 (43%), Positives = 61/105 (58%), Gaps = 10/105 (9%) Query: 2 LWQFNGMIKCKIPSSEPLLDFNNYGCYCGLGGSGTPVDDLDRCCQTHDNCYKQAKKLDSC 61 L QF MIK K+ EP++ + YGCYCG GG G P D DRCC HD CY +K+ C Sbjct: 2 LLQFRKMIK-KMTGKEPVVSYAFYGCYCGSGGRGKPKDATDRCCFVHDCCY---EKVTGC 57 Query: 62 KVLVDNPYTNNYSYSCSNNEITCSSENNACEAFICNCDRNAAICF 106 +P ++Y+YS N I C + + C+ +C CD+ AAICF Sbjct: 58 -----DPKWDDYTYSWKNGTIVCGGD-DPCKKEVCECDKAAAICF 96 END_OF_FILE my $inHeader; my $pushTo; my @headers = (); my @lines = (); while ( <$inFH> ) { chomp; if ( not $inHeader and m{^>} ) { $inHeader = 1; $pushTo = \ @headers; } if ( $inHeader and m{^Query:} ) { $inHeader = 0; $pushTo = \ @lines; } push @$pushTo, $_; } close $inFH or die qq{close: $!\n}; print Data::Dumper->Dumpxs( [ \ @headers, \ @lines ], [ qw{ *headers *lines } ], ); #### @headers = ( '>1gmz_B mol:protein length:122 PHOSPHOLIPASE A2', ' Length = 122', '', ' Score = 103 bits (233), Expect = 9e-23', ' Identities = 56/124 (45%), Positives = 67/124 (54%), Gaps = 12/124 (9%)', '', '>1b4w_A mol:protein length:122 PROTEIN (PHOSPHOLIPASE A2)', ' Length = 122', '', ' Score = 95.7 bits (215), Expect = 2e-20', ' Identities = 46/105 (43%), Positives = 61/105 (58%), Gaps = 10/105 (9%)', '' ); @lines = ( 'Query: 2 LWQFNGMIKCKIPSSEPLLDFNNYGCYCGLGGSGTPVDDLDRCCQTHDNCYKQAKKLDSC 61', ' LWQF MI K P + YGCYCG+GG G P D DRCC HD CY KL SC', 'Sbjct: 2 LWQFGKMI-LKETGKLPFPYYVTYGCYCGVGGRGGPKDATDRCCFVHDCCY---GKLTSC 57', '', 'Query: 62 KVLVDNPYTNNYSYSCSNNEITCSSENNACEAFICNCDRNAAICFSK--VPYNKEHKNLD 119', ' K P T+ YSYS + I C EN+ C IC CD+ AA+CF + YNK++ + ', 'Sbjct: 58 K-----PKTDRYSYSRKDGTIVC-GENDPCRKEICECDKAAAVCFRENLDTYNKKYMSYL 111', '', 'Query: 120 KKNC 123', ' K C', 'Sbjct: 112 KSLC 115', '', 'Query: 2 LWQFNGMIKCKIPSSEPLLDFNNYGCYCGLGGSGTPVDDLDRCCQTHDNCYKQAKKLDSC 61', ' L QF MIK K+ EP++ + YGCYCG GG G P D DRCC HD CY +K+ C', 'Sbjct: 2 LLQFRKMIK-KMTGKEPVVSYAFYGCYCGSGGRGKPKDATDRCCFVHDCCY---EKVTGC 57', '', 'Query: 62 KVLVDNPYTNNYSYSCSNNEITCSSENNACEAFICNCDRNAAICF 106', ' +P ++Y+YS N I C + + C+ +C CD+ AAICF', 'Sbjct: 58 -----DPKWDDYTYSWKNGTIVCGGD-DPCKKEVCECDKAAAICF 96', '' ); #### push @{ $inHeader ? @headers : @lines }, $_;