0000HA-00001 begin #### 0000HA-00001 doing-work #### 0000HA-00002 complete #### #!/usr/bin/perl use strict; use warnings; my (@entries, $x, $doing, $complete); open FH, "logfile"; while { if (m/(\w{6}-\w{5})\s+begin/){ push @entries, $1; } } close FH; foreach $x (@entries){ open FH, "logfile"; while { if (m/$x\s+doing-work/){ $doing = 1; } if (m/$x\s+complete/){ $complete = 1; } } close FH; if ($doing == 1 && $complete == 1){ $doing = 0; $complete = 0; next; #failed ! }else{ push @failed, $x; } } print "These entries have failed\n"; foreach $x (@entries){ print $x."\n"; }