use strict;
use warnings;
my @AoA = ( [0..13], [0..11], [0..11] );
fisher_yates_shuffle(@AoA);
foreach ( @AoA ) {
print join ",",@$_;
print $/;
}
sub fisher_yates_shuffle {
while (my $deck = shift ) {
my $i = @$deck;
while ($i--) {
my $j = int rand ($i+1);
@$deck[$i,$j] = @$deck[$j,$i];
}
}
}
####
my @weeks = ('@week01','@week02','@week03');
for my $ref (@weeks) {
for ($i = @$ref; --$i;) {
my $r = int rand ($i+1);
@$ref[$i, $r] = @$ref[$r, $i];
}
}
for(@weeks){
print;
}
####
my @week01 = (0..13);
my @week02 = (0..11);
my @week03 = (0..11);
my @weeks_refs = (\@week01,\@week02,\@week03);
for my $ref (@weeks_refs) {
for ($i = @$ref; --$i;) {
my $r = int rand ($i+1);
@$ref[$i, $r] = @$ref[$r, $i];
}
}
for(@weeks_refs){
print join ",",@$_;
print $/;
}
####
for my $array_ref (@weeks_arr){
print join "," ,@{$array_ref};
}
####
for(@weeks_arr) {
print join ",",@$_;
print $/;
}