#! /usr/bin/perl use strict; #use warnings; my @list = qw( chr10 chr10 chr10 chr10 chrY chrX chrY chr1 chr1 chr1 chrX chrY chrX chrX chr2 chr2 chr2 ); my @sorted = sort { my ($chr_a, $num_a) = $a =~ m/^([a-z]+)(\d+)/; my ($chr_b, $num_b) = $b =~ m/^([a-z]+)(\d+)/; $chr_a cmp $chr_b || $num_a <=> $num_b } @list; print join "\n", @sorted;