古い記事
ランダムジャンプ
新しい記事
Perl で配列をシャッフルする方法のメモ。
最近よく使うので。

Matthew McEachen :: Hints & Kinks :: shuffle in perl
http://matthew.mceachen.us/archives/000034.html
use strict;
use List::Util 'shuffle';

my @lines = <>;
print shuffle( @lines );

Recipe 4.17. Randomizing an Array (Perl Cookbook)
http://www.unix.org.ua/orelly/perl/cookbook/ch04_18.htm
# fisher_yates_shuffle( \@array ) : generate a random permutation
# of @array in place
sub fisher_yates_shuffle {
    my $array = shift;
    my $i;
    for ($i = @$array; --$i; ) {
        my $j = int rand ($i+1);
        next if $i == $j;
        @$array[$i,$j] = @$array[$j,$i];
    }
}

行単位でシャッフルする簡単なスクリプト shuffle.pl を作ってみた。
#!/usr/bin/perl
use strict;
use warnings;
use List::Util 'shuffle';
my @results = (<>);
print shuffle(@results);