Two thoughts here:
1) The $. Variable has the line number of the file you are iterating
through, so you could use that combined with pos()
2) You could also try something like this:
while(<INFILE>){
if($_ =~ /.{20}$pattern.{20}/){
push(@found,$1);
}
}
-----Original Message-----
From: Tim & Kylie Duke [mailto:[EMAIL PROTECTED]
Sent: Thursday, May 13, 2004 12:17 AM
To: Beginners perl
Subject: recording the position of m// searches
-------------<snip>----------------
So I am thinking, use m//g to search, then push the found locations onto
a list, then come back, printing out parts of the text file based on the
search positions in the list, and use a context of 20 characters on
either side.
The pos() function within a m//g loop seems to return the position
within the line, not the position within the file. Is there a different
function to return the absolute position in the file, which I could then
use later on as a basis for (very roughly)
for each sort(@found_locations)
print text from $position - 20 to $position +20
-------------<snip>-----------------
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>