in reply to selecting random key from hash

Essentially the same as Merlyn's, but I like this method of dealing with the undef produced by the each iterator wrapping.

#! perl -slw use strict; my %hash; @hash{ 'a' .. 'z' } = 'A' .. 'Z'; for( 1 .. 20 ){ my @four = map{ each %hash for 1 .. rand( keys %hash ); each %hash || each %hash } 1 .. 4; print "@four"; } __END__ P:\test>373821 o a y u v i h i j i o x o g l g k a d d i n m s i v n l c d b n j p z e b n v h q r i u y m s r h s j k d u j v y j h i w l c w y v o o z m n k p w o h u v m a

Examine what is said, not who speaks.
"Efficiency is intelligent laziness." -David Dunham
"Think for yourself!" - Abigail
"Memory, processor, disk in that order on the hardware side. Algorithm, algoritm, algorithm on the code side." - tachyon