Use a sliding window:
my @lines; $/ = \80; # assume a block size of 80 while (<$file>) { push @lines, $_; my $str = join "", @lines; if ($str =~ /searchword/) { my $loc = tell $file - pos $str; print "Found a match starting after $loc.\n"; }; if (@lines > 2) { shift @lines }; };
Instead of looking for a match in just one "line", you look for a match in the "line" and the "line" after it.
In reply to Re: Searching in binary files
by Corion
in thread Searching in binary files
by crenz
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |