in reply to Parsing a data field that is seperated by data/time entries

You'll have to Benchmark by yourself.

1. If all logs are on one line (which I assume true), you can split by newline and take the last element:

my @lines = split /\n/, $logtext; my $last = $lines[-1];

2. I doubt that the previous could waste lots of resources in case of big text, in particular it's filling an array which is overkill. So, you could try this (only with Perl 5.8.x):

open LOGSTRING, \$logtext; my $last; $last = $_ while (<LOGSTRING>); close(LOGSTRING);

3. A third solution could be using a pattern match bound to the very end of the string, and using non-eager matching for improved efficiency:

$logtext =~ /^(.*)\Z/m; my $last = $1;
Couldn't tell you what's the best for very large log texts, anyway.
Update: of all these... the best is the one from Roy Johnson!

Flavio (perl -e "print(scalar(reverse('ti.xittelop@oivalf')))")

Don't fool yourself.