my @foo = qw/C1 C12 R5 C3 C21 C2 D12/; @foo = map { $_->[0] . $_->[1] } sort { $a->[0] cmp $b->[0] or $a->[1] <=> $b->[1] } map { [/(\D*)(\d*)/] } @foo; print join( ", ", @foo ) . "\n";