my @Array; $Array[0] = "1,5"; $Array[3] = "3,9"; $Array[2] = "3,4"; $Array[1] = "6,2"; $Array[4] = "8,1"; @Array = map { join ',', @$_; } sort { $a->[0] <=> $b->[0] or $b->[1] <=> $a->[1] } map { [split /,/] } @Array; use Data::Dumper; print Dumper \@Array; #### my @Array = ( [1, 5], [6, 2], [3, 4], [3, 9], [8, 1], ); @Array = sort { $a->[0] <=> $b->[0] or $b->[1] <=> $a->[1] } @Array; use Data::Dumper; print Dumper \@Array;