#!/usr/bin/perl use warnings; use strict; #use Data::Dumper; my %fragments; while ( my $line = ) { chomp $line; my @words = split / /, $line; for my $i (0 .. $#words - 1) { push @{ $fragments{$words[$i]} }, join ' ', @words[0 .. $i-1, $i+1 .. $#words]; } } for my $term ( keys %fragments ) { print "There are $term " . ( join ' and ', @{ $fragments{$term} } ) . ".\n"; } __DATA__ big businesses fast red cars big smart companies fast light planes fast animals big bad wolves small bad girls bad growling bears