sub list { my @words = split( /\s+/, $_[0] ); my $lastword = $#words; for my $i (1..$lastword) { push @words, map { join " ", @words[$_..$_+$i] } (0..$lastword-$i); } return @words; }