my $start_pattern = qr/.... $date/; my $end_pattern = qr/.... $date/; my $send_pattern = qr/.... whatever/; while () { if (my $status = /$start_pattern/..1) { print "$. : $_" if $status == 1 or /$end_pattern/ or /$send_pattern/; } } #### while () { if (/$start_pattern/..1) { print "$. : $_" if /$start_pattern/ or /$end_pattern/ or /$send_pattern/; } }