in reply to Finding first block of contiguous elements in an array

If your files contain multiple headers just flag it and get on with it.... If not just exit after the initial run of TITLE tokens runs out

my $header = 0; my $title = 0; my $string = ''; while (<DATA>) { $header = 1 if /^HEADER/; $title = 1 if /^TITLE/ and $header; if ( $header and $title ) { if ( /^TITLE\s+(.*)/ ) { $string .= $1; } else { $header = $title = 0; $string =~ s/\s+/ /g; print "$string\n"; $string = ''; } } } __DATA__ HEADER METAL BINDING PROTEIN 31-AUG-98 1BSW + TITLE ACUTOLYSIN A FROM SNAKE VENOM OF AGKISTRODON ACUTUS AT PH + TITLE 2 7.5 + COMPND MOL_ID: 1; + COMPND 2 MOLECULE: ACUTOLYSIN A; TITLE NO 2 7.5 TITLE NO 2 7.5 HEADER METAL BINDING PROTEIN 31-AUG-98 1BSW + TITLE ACUTOLYSIN A FROM SNAKE VENOM OF AGKISTRODON ACUTUS AT PH + TITLE 1 2 3 4 5 + COMPND MOL_ID: 1; + COMPND 2 MOLECULE: ACUTOLYSIN A; TITLE NO 2 7.5 TITLE NO 2 7.5

cheers

tachyon

s&&rsenoyhcatreve&&&s&n.+t&"$'$`$\"$\&"&ee&&y&srve&&d&&print