> > Something like (untested):
> >
> > my (@lines, $num) = ((), 4);
> > while (<INPUT>) {
> > push @lines, $_;
> > shift @lines if @lines == $num+1;
> > print 'lines '.($.-$num+1).' to '.($.)." match\n"
> > if join('',@lines) =~ /regex goes here/;
> > }
> >
>
> That assumes that the pattern being searched for will begin 4n lines
> from the beginning of the file, but just because we're looking for
> four lines doesn't mean the file is written in four line chunks. In
> fact, it probably isn't.
Er, no it doesn't. Read it again. It's a rolling n-line chunk of the file.
> Why don't you tell us what you're actually trying to do here; I'm
> guessing the goal isn't to search through a file for a literal string
> and then print it. If you knew what you were looking for, you
> wouldn't need to seach the file; you could just print it. So is the
> ultimate goal to perform a substitution? Count the number of
> occurrances? What?
Now this I agree with.
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>