#!/usr/bin/perl use strict; use warnings; use IO::All; my @data; while (<>) { chomp; if (/(.*)0[2-5]\/02\/2018/s) { io('out.txt')->appendln($_); } } continue { close ARGV if eof; # Not eof()! } __END__ $ perl test.pl in.txt && cat out.txt XA29EN35 M4C6M D7F577Q 111.222.333.123 AWAY - [02/Feb/2018:01:08:39 -0800] 02/02/2018 JK20TQ67 K1L0V T6Z148X 111.222.333.123 HOME - [03/Feb/2018:01:08:39 -0800] 03/02/2018 SO78NZ28 B5S8J W9F920Z 111.222.333.123 HOME - [04/Feb/2018:01:08:39 -0800] 04/02/2018 BI55SY64 R6P5H A9U757R 111.222.333.123 HOME - [05/Feb/2018:01:08:39 -0800] 05/02/2018