use strict; my $xy = [[1,2,3,4,5],[4,2,5,0,2]]; my @sorted = sort{$b->[1]<=>$a->[1] ||$b->[0]<=>$a->[0]} map{[$xy->[0]->[$_],$xy->[1]->[$_]]} (0..$#{$xy->[0]}); print "($_->[0],$_->[1])\n" foreach @sorted;