$ perl -wnle 'push @x, $_; if(@x>=2) {print "@x"; shift @x}' input.txt Hello I I am am happy $ perl -wnle 'push @x, $_; if(@x>=3) {print "@x"; shift @x}' input.txt Hello I am I am happy #### #!/usr/bin/env perl use warnings; use strict; use Tie::File; use Fcntl 'O_RDONLY'; die "Usage: $0 INPUTFILE WINSIZE\n" unless @ARGV==2; my ($INPUTFILE,$WINSIZE) = @ARGV; tie my @array, 'Tie::File', $INPUTFILE, mode => O_RDONLY; $, = " "; $\ = "\n"; # output field/record separators for my $i (0..@array-$WINSIZE) { print @array[$i..$i+$WINSIZE-1]; } #### $ perl window.pl input.txt 2 Hello I I am am happy