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.

In reply to Re: Search String - next line by dingus
in thread Search String - next line by Anonymous Monk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • 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:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.