use File::Temp 'tempfile'; ... my ($fh, $filename) = tempfile(); my $bw = File::ReadBackwards->new($filename) or die "Cannot read '$filename' backwards"; while (my $log_line = $bw->readline) { ... }