shamat has asked for the wisdom of the Perl Monks concerning the following question:
prints:use strict; my @matrix; $matrix[0][0] = 'A1a1'; #sort by this column $matrix[0][1] = 'img1'; $matrix[0][2] = 'x123'; $matrix[0][3] = 'y123'; $matrix[1][0] = 'A1a2'; $matrix[1][1] = 'img2'; $matrix[1][2] = 'x123'; $matrix[1][3] = 'y456'; $matrix[1][0] = 'A1a12'; $matrix[1][1] = 'img3'; $matrix[1][2] = 'x456'; $matrix[1][3] = 'y789'; $matrix[2][0] = 'A10a1'; $matrix[2][1] = 'img4'; $matrix[2][2] = 'x456'; $matrix[2][3] = 'y123'; $matrix[3][0] = 'A12a1'; $matrix[3][1] = 'img5'; $matrix[3][2] = 'x456'; $matrix[3][3] = 'y456'; my @sorted_matrix = sort {$a->[0] <=> $b->[0] || $a->[0] cmp $b->[0] } + @matrix; for my $i ( 0 .. $#sorted_matrix ) { for my $j ( 0 .. $#{ $sorted_matrix[$i] } ) { print "$i $j -> $sorted_matrix[$i][$j]\n"; } print "\n"; }
Instead I would like to have:0 0 -> A10a1 0 1 -> img4 0 2 -> x456 0 3 -> y123 1 0 -> A12a1 1 1 -> img5 1 2 -> x456 1 3 -> y456 2 0 -> A1a1 2 1 -> img1 2 2 -> x123 2 3 -> y123 3 0 -> A1a12 3 1 -> img3 3 2 -> x456 3 3 -> y789
I also tried to adapt something I found on this forum, but I don't fully understand it.A1a1 A1a12 A10a1 A12a1
Thanks for sharing your wisdom!my @sorted_matrix = grep {s/(^|\D)0+(\d)/$1$2/g,1} sort {$a->[0] cmp $ +b->[0]} grep {s/(\d+)/sprintf"%06.6d",$1/ge,1} @matrix;
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: natural sort on array of arrays
by duelafn (Parson) on May 10, 2016 at 16:54 UTC | |
by shamat (Acolyte) on May 10, 2016 at 17:29 UTC | |
|
Re: natural sort on array of arrays
by haukex (Archbishop) on May 10, 2016 at 20:00 UTC | |
|
Re: natural sort on array of arrays
by AnomalousMonk (Archbishop) on May 10, 2016 at 19:38 UTC | |
|
Re: natural sort on array of arrays
by hippo (Archbishop) on May 10, 2016 at 16:34 UTC | |
by AnomalousMonk (Archbishop) on May 10, 2016 at 19:18 UTC | |
|
Re: natural sort on array of arrays
by salva (Canon) on May 11, 2016 at 06:46 UTC | |
by duelafn (Parson) on May 11, 2016 at 15:08 UTC | |
|
Re: natural sort on array of arrays
by stevieb (Canon) on May 10, 2016 at 16:40 UTC | |
by duelafn (Parson) on May 10, 2016 at 17:07 UTC |