如何选择随机哈希键?
对于my Flash+Perl card game,我试图从一个哈希中挑选一个随机卡,钥匙是:“6铲”,“6俱乐部”等:
my $card; my $i = 0; for $card (keys %{$user->{HAND}}) { last if rand(++$i) < 1; } delete $user->{HAND}->{$card}; print "random card: $card\n";
并且想知道它是否正确,如果有更好的方法
解决方法
更简洁一些:
my $random_value = $hash{(keys %hash)[rand keys %hash]};