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

Phillip San Miguel pmiguel at purdue.edu
Fri Jan 29 07:35:16 PST 2010


Joe Kline wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Phillip San Miguel wrote:
>   
>> This is probably pretty straight forward, but:
>>
>> I have a hash of 2d arrays. I want to sort by numerical value across one
>> of these dimensions. What would be the syntax for that?
>>
>> $table{$colors}[0..num_of_traces-1][0..num_data_points-1]
>>
>> I want sort the values in the first (traces) dimension.
>>
>> When I try to write the sort syntax my head starts spinning.
>>
>>     
>
> wouldn't it just be:
>
> @sorted = sort { $a->[0] <=> $b->[0] } @{ $table{$colors} };
>
> ?
>
> if you want to sort by data points the index for the sort would be [1],
> wouldn't it?
>
> joe
>
>   
I guess I don't understand what that would be doing.

@{ $table{$colors} }

would return a list of arrays of pointers to other arrays.

$b->[0]
and
$a->[0]


Seems like they would return pointers to the second dimension of the 
array. So wouldn't they sort the pointers themselves?

Phillip


More information about the Purdue-pm mailing list