As Laurent_R says, this is an excellent strategy. Have a look at the entry for $INPUT_RECORD_SEPARATOR (usually spelled just $/) in perlvar. For example:
#! perl use strict; use warnings; my $target = 'kitten'; my $count = 0; $/ = ">Header\n"; { local $/ = ">Header\n"; while (my $string = <DATA>) { $string =~ s/\n//g; print "string is '$string'\n"; $count += () = $string =~ /\Q$target/g; } } print "The target string '$target' occurs $count times in the file\n"; __DATA__ >Header sushikitten ilovethekit tensushithe kittenisthe >Header sushikittAn ilovethekit tensushithe kittBnisthe
Output:
23:11 >perl 1474_SoPW.pl string is '>Header' string is 'sushikittenilovethekittensushithekittenisthe>Header' string is 'sushikittAnilovethekittensushithekittBnisthe' The target string 'kitten' occurs 4 times in the file 23:11 >
Hope that helps,
| Athanasius <°(((>< contra mundum | Iustus alius egestas vitae, eros Piratica, |
In reply to Re^3: Regexp matching on a multiline file: dealing with line breaks
by Athanasius
in thread Regexp matching on a multiline file: dealing with line breaks
by BlueStarry
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |