C:\test>perl -E"sub rndStr{ join'', @_[ map{ rand @_ } 1 .. shift ] };; say('>',rndStr( 40, 'a'..'z')),say(rndStr(80,qw[a c g t])) for 1 .. 1e6" >junk.dat C:\test>prompt [$t] $p$g [ 9:41:54.22] C:\test>perl -E"$h{<>}=<> until eof(); print scalar keys %h" junk.dat 1000000 [ 9:41:57.88] C:\test>