my @sorted = map{$_->[0]} sort {$a->[1] <=> $b->[1]} map{ /chr(\w+)/; my $x = $1; if ($x eq "X") {$x=23} if ($x eq "Y") {$x=24} $_=[$_,$x] } @unsorted;