my @words = qw(sem sema cat semok hgt cato seme cate); my %similar = (); foreach my $word ( @words ) { push( @{$similar{substr($word,0,3)}}, $word ); } foreach my $prefix ( sort keys %similar ) { print( join( ', ', @{$similar{$prefix}} ) ); print( "\n" ); } #### cat, cato, cate hgt sem, sema, semok, seme