use strict; use warnings; my $flag = 0; my $start = 'd1'; my $end = 'd4'; my @array; while () { chomp; if(/$start/){ $flag = 1; @array = (); } elsif(/$end/) { $flag = 0; print "@array\n"; } else{ push @array, $_ if $flag; } }