#!/usr/bin/perl use strict; use Data::Dumper; my (@words, $substr, %hash); @words = qw/sem sema cat semok hgt cato seme cate/; foreach (@words) { $substr = substr( $_, 0, 3 ); push( @{ $hash{$substr} }, $_ ); } print Dumper(\%hash); exit; $VAR1 = { 'cat' => [ 'cat', 'cato', 'cate' ], 'sem' => [ 'sem', 'sema', 'semok', 'seme' ], 'hgt' => [ 'hgt' ] };