Assuming the file is small enough to be read into memory in one chunk then you can do this with a single regex. Clearly you have to subsitute $Nth and $match with what you want.
open (FILE '<filename');
$_ = join('',<FILE>);
close (<FILE>);
my ($result) = m!$match(?:.*?$/){$Nth}(.*?$/)!s;
print $result;
If you expect the match to occur multiple times then you should loop using a while (m! !sg) expression as in
open (FILE '<filename');
$_ = join('',<FILE>);
while ( m!$match(?:.*?$/){$Nth}(.*?$/)!sg) {
print $1;
# pos = length ($match) + length ($`);
}
In the looping case there is some ambiguity about what should happen in the event that $match also occurs in the lines that are skipped. In the code as written above we ignore any such possible matches. Careful manipulation of pos in the loop however does allow all $Nth lines after $match to be found - this is the line commented out in the above. Changing it so as to ensure that none of the skipped lines contains $match is left as an exercise for the student...
Dingus
Enter any 47-digit prime number to continue.
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.