sub hashGen { my $idx = 0; my %mArray; ++$mArray{ $nums[ ++$idx ] } while keys %mArray < $uSize; return keys %mArray; } __END__ C:\test>junk Rate grepGen mapGen firstGen smartGen hashGen shuffleEm grepGen 45.2/s -- -54% -79% -96% -99% -100% mapGen 97.9/s 116% -- -54% -91% -98% -100% firstGen 214/s 374% 119% -- -80% -97% -99% smartGen 1074/s 2274% 997% 401% -- -83% -96% hashGen 6500/s 14275% 6540% 2932% 506% -- -75% shuffleEm 25619/s 56551% 26068% 11849% 2286% 294% --