my $numofwords= 50000000; my %randomword; for (my $i=0; $i<$numofwords; ++$i) { my @chars = ( "A" .. "Z", "a" .. "z", 0 .. 9, qw(! @ $ % ^ & *) ); my $rin = join("", @chars[ map { rand @chars } ( 1 .. 5 ) ]) ) }; if (defined($randomword{$rin})) { $randomword{$rin}.=",$i"; } else { $randomword{$rin} = $i; } }