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


In reply to Re: Finding first block of contiguous elements in an array by tachyon
in thread Finding first block of contiguous elements in an array by FamousLongAgo

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":