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
For: | Use: | ||
& | & | ||
< | < | ||
> | > | ||
[ | [ | ||
] | ] |