my @sorted = sort { my ($chr_a, $num_a) = $a =~ m/^([a-z]+)(\d*)/i; my ($chr_b, $num_b) = $b =~ m/^([a-z]+)(\d*)/i; $chr_a cmp $chr_b || $num_a <=> $num_b } @list;