my ($i, $jokekey); ++$i && rand($i) < 1 && ($jokekey = $_) for (keys %hash); #### sub choose { #assumes 1st param is \%knockknocks my $jokeref = shift; my @setups = keys %$jokeref; return $setups[rand @setups]; }