use warnings; use strict; use File::ReadBackwards; my $bw = File::ReadBackwards->new('/var/log/maillog') or die $!; while (defined( my $line = $bw->readline )) { print $line if $line =~ /Passed CLEAN/; } $bw->close;