use warnings; use strict; use Tie::File; tie my @filearray, 'Tie::File', 'backwards.log' or die "couldn't tie file $!\n"; foreach (reverse @filearray) { if (/received/) { printf "%s %s\n", (split)[0,1]; last; } }