$ 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