#! perl -slw use strict; use List::Util qw[ shuffle ]; my @cols = shuffle qw/0 1 2 3 4 5 6 7 8 9 10 11/; my @nums = map { [qw/01 02 03 04 05 06 07 08 09 10 11 12/], } 1 .. 12; my @swapped = map{ [ @{ $_ }[ @cols ] ] } @nums; print "@$_" for @swapped; __END__ P:\test>467617 12 05 06 04 02 08 10 11 03 01 07 09 12 05 06 04 02 08 10 11 03 01 07 09 12 05 06 04 02 08 10 11 03 01 07 09 12 05 06 04 02 08 10 11 03 01 07 09 12 05 06 04 02 08 10 11 03 01 07 09 12 05 06 04 02 08 10 11 03 01 07 09 12 05 06 04 02 08 10 11 03 01 07 09 12 05 06 04 02 08 10 11 03 01 07 09 12 05 06 04 02 08 10 11 03 01 07 09 12 05 06 04 02 08 10 11 03 01 07 09 12 05 06 04 02 08 10 11 03 01 07 09 12 05 06 04 02 08 10 11 03 01 07 09