#! perl -sw use 5.010; use strict; use Data::Dump qw[ pp ]; my $abstract = 'Perl is a high-level, general-purpose, interpreted, dynamic programming language.'; my (%double_words, %triple_words, %four_words); my @words = split ' ', $abstract; $double_words{ join ' ', @words[ $_ .. $_ +1 ] } = undef for 0 .. $#words - 1; $triple_words{ join ' ', @words[ $_ .. $_ +2 ] } = undef for 0 .. $#words - 2; $four_words{ join ' ', @words[ $_ .. $_ +3 ] } = undef for 0 .. $#words - 3; say join '|', keys %double_words; say join '|', keys %triple_words; say join '|', keys %four_words;