# [Purdue-pm] How to sort one dimension of a 2d array

Dave Jacoby jacoby at purdue.edu
Fri Jan 29 08:08:40 PST 2010

```So, you're wanting to sort the inner arrays.

my \$x = [[7,0,25,10],[0,9,7,12],[3,2,1,0]] ;
say Dumper \$x ;

for my \$y ( @\$x ) {
@\$y = sort { \$a <=> \$b } @\$y ;
}

say Dumper \$x ;

jacoby at oz:~\$ ./test.pl
line 64.
\$VAR1 = [
[
7,
0,
25,
10
],
[
0,
9,
7,
12
],
[
3,
2,
1,
0
]
];

\$VAR1 = [
[
0,
7,
10,
25
],
[
0,
7,
9,
12
],
[
0,
1,
2,
3
]
];

jacoby at oz:~\$

There may be a more clever choice, but that works as I understand you
want it to.

Phillip San Miguel wrote:
> Phillip San Miguel wrote:
>>
>>>
>> That said, the syntax you provide, in practice, does do exactly what I
>> needed...
> Spoke too soon, no that isn't what I meant. Discarding the hash
> part--which isn't the problem. I have a 2D array. If I sort it your way,
> I get:
>
> perl -e '@a=([7,0,25,10],[0,9,7,12],[3,2,1,0]);@sorted=sort {\$a->[0] <=>
> \$b->[0]} @a ;use Data::Dumper; print Dumper \@a;print Dumper \@sorted;'
>
>
> \$VAR1 = [
>          [
>            7,
>            0,
>            25,
>            10
>          ],
>          [
>            0,
>            9,
>            7,
>            12
>          ],
>          [
>            3,
>            2,
>            1,
>            0
>          ]
>        ];
> \$VAR1 = [
>          [
>            0,
>            9,
>            7,
>            12
>          ],
>          [
>            3,
>            2,
>            1,
>            0
>          ],
>          [
>            7,
>            0,
>            25,
>            10
>          ]
>        ];
>
> But what I want is:
> \$VAR1 = [
>          [
>            0,
>            0,
>            1,
>            0
>          ],
>          [
>            3,
>            2,
>            7,
>            10
>          ],
>          [
>            7,
>            9,
>            25,
>            12
>          ]
>        ];
>
>
> _______________________________________________
> Purdue-pm mailing list
> Purdue-pm at pm.org
> http://mail.pm.org/mailman/listinfo/purdue-pm

--