in reply to Regex to select multiple lines
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.
|
|---|