my $date = { set the date pattern you are looking for... } my $in_date = 0; while (my $line=){ chomp $line; if ( ($in_date == 0 ) && ($line =~ m@SYNC@) && ($line =~ m@STARTED@){ $line =~ s/\#//g; $line =~ s/^\s+//; $line =~ s/\s+$//; my @f=split(/\s+/,$line); shift @f; shift @f; my $rdate = join(" ",@f); if ( $date eq $rdate ) { $in_date=1; } } elsif ( $in_date && ($line =~ m@SYNC@ ) && ( $line =~ m@FINISHED@ ) ) { $in_date = 0; } elsif ( $line =~ m@HEFFILE@ ) { printf "%s\n",$line; } }