> > 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>