我有一个字符串ID哈希.什么是洗牌的最佳方法?
例如,我的哈希分配以下ID:
this => 0
is => 1
a => 2
test => 3
Run Code Online (Sandbox Code Playgroud)
现在我想随意洗牌.一个示例结果将是:
this => 1
is => 0
a => 3
test => 2
Run Code Online (Sandbox Code Playgroud)
您可以使用该shuffle方法List::Util来帮助:
use List::Util qw(shuffle);
...
my @values = shuffle(values %hash);
map { $hash{$_} = shift(@values) } (keys %hash);
Run Code Online (Sandbox Code Playgroud)