use strict; use warnings; use Data::Dump; my @window; while (my $line = ) { push @window, $line; next if @window < 6; # init if( $window[3] =~ m/[^\d]+\d+/ ){ dd \@window; } shift @window; }