LINUX.ORG.RU

История изменений

Исправление router, (текущая версия) :

Спасибо, так в итоге и сделаю.

P.S. Пока ехал с работы, подумал что для общего случая проще всего рекурсию использовать. Но пожалуй это перебор

sub human_readable_sort($) {
    my $src_str = shift;

    if ( $src_str =~ m/^([^\d]*)(\d+)([^\d].*|)$/ ){
        return sprintf ("%s%010d%s", $1, $2, human_readable_sort($3));
    } else {
        return $src_str;
    }
}

Исходная версия router, :

Спасибо, так в итоге и сделаю.

P.S. Пока ехал с работы, подумал что для общего случая проще всего рекурсию использовать. Но пожалуй это перебор

sub human_readable_sort($) {
    my $src_str = shift;

    if ( $src_str =~ m/^([^\d]*)(\d+)(\b.*|)$/ ){
        return sprintf ("%s%010d%s", $1, $2, human_readable_sort($3));
    } else {
        return $src_str;
    }
}