my @sorted = map { $_->[0] } sort { $a->[1] cmp $b->[1] } map { [$_, sprintf("%03.f%03.f%03.f%03.f", split(/\./, $_))] } @unsorted;