Have you considered dealing with your input text as a whole, rather than line by line? You could, for instance, split your input into "messages" with code like this:

my @details = split /Message Type/, $data;

Once you have these "messages" as array elements, you can then look at each one as a discrete item, rather than having to deal with the problem of where one message ends and another starts.

If you know that the last few items are the ones you want, you can reference them in a number of ways, depending on your circumstance.

One way is to simply use $#array, which gives you the subscript of the last element in the array, like this:

my $last_item = $array[$#array];

The item-before-last would then be:

my $item_before_last = $array[ $#array - 1 ];

Alternatively, if efficiency is not important, you could reverse the array like this:

@array = reverse @array; # ...and the last shall be first :) my $last_item = $array[0];

I hope this helps, but I suspect it won't be enough.

 


In reply to Re: Regex to select multiple lines by EdwardG
in thread Regex to select multiple lines by beeny

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.