my @values = ( '123=more digits', '04=critical', '02=informational', '01=unknown', '10=test', '03=warning', '08=foo', ); @values = map { $_->[1] } sort { $a->[0] <=> $b->[0] } map { [/(\d+)/, $_]} @values; print join "\n", @values; __OUTPUT__ 01=unknown 02=informational 03=warning 04=critical 08=foo 10=test 123=more digits