in reply to sorting question

I could be wrong, but it looks like you are using coordinate pairs. The following sorts coordinate pairs with y in descending order and x in ascending (since you didn't specify x to be descending as well):
use strict; use warnings; my ($x, $y, $ref); for (0..20) { # Randomize some data points for testing $x = int rand 100; $y = int rand 100; $ref->[$_] = [$x,$y]; } for (sort {$b->[1] <=> $a->[1] or $a->[0] <=> $b->[0]} @$ref) { print $_->[0] . ',' . $_->[1] . "\n"; }