use strict; use warnings; my @array = qw(one4wobble two3wibble three2wig four1wog); @array = map {$_->[1]} # Convert back to original form sort {$a->[0] <=> $b->[0]} # Sort on the generated key map {[(/(\d+)/ ? $1 : -1), $_]} # Generate [key, data] pairs @array; print "@array";