Untested, but looks right:
#!/usr/bin/perl
use warnings;
use strict;
use Date::Manip;
use vars qw(%ipHash);
my $order=0;
while(<DATA>)
{
/ ^((\d{1,3}\.){3}\d{1,3}) # grab the IP address into $1
\s\-\s\-\s\[
(\d\d\/\w{3}\/\d\d(\d\d\:){3}\d\d) # grab the date into $3
\s\-\d{4}\]\s"\w{1,4}\s
([\/|\w|\.|_]+) # grab the file path into $5
/x;
$ipHash{$1}{'order'} = $order++;
$ipHash{$1}{'path'} = $5;
$ipHash{$1}{'date'} = &UnixDate($3,"%s");
}
for (sort { $ipHash{$a}{'order'} <=> $ipHash{$b}{'order'}; } keys %ipH
+ash) {
print "$_ => $ipHash{$a}{'date'}\t$ipHash{$a}{'path'}\n";
}
cLive ;-)
PS - if you're not doing so already, you might want to use tail to grab the end of the logfile