for (0..$#a) { my $r = rand(@a)-$_; @a[$_,$r]=@a[$r,$_]; };