在Perl中,最佳的数组洗牌方法是什么?

17

所以我有一个文件。假设它看起来像这样(实际上可能更长):

1234
2134
3124
4123

最佳的方法是如何打乱那个文件中的行?


你说的“随机循环”是什么意思? - Vijay
2
我认为他的意思是洗牌,对吧 Bill? - Gilles Quénot
@sputnick 是的,那就是我的意思。 - Bill
3
Perl FAQ中涵盖了这个问题以及许多其他常见的Perl问题:如何随机打乱数组? - Andy Lester
除了 @Andy 友善指出的 FAQ 外,还有 40 个 Perl 问题提到“shuffle” ,你可能应该学习一下。 - tchrist
@tchrist 在@sputnick的建议下,我在找到解决方案后将标题更改为shuffle(以帮助其他人找到它)...我不知道“shuffle”存在。 我有类似于“随机化数组的最佳方法”的东西。 你是在指出有很多关于洗牌的问题,还是真的认为我需要阅读那些其他问题? - Bill
1个回答

34
#!/usr/bin/env perl

use strict;
use warnings;

use List::Util qw/shuffle/;

my @arr = shuffle <>;

print @arr;

使用方法:

./script file.txt

3
List::Util是一个核心模块,如果这对你很重要的话。(对我来说很重要。我是一个模块迷。) - felwithe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接