That's unnecessarily long and complicated, here's how you can do it much
easier:

    @x.sort: {
        my ($month, $day, $year, $hour, $minute, $second) = .comb(/\d+/);
        ($year // 0, $month // 0, $day // 0, $hour // 0, $minute // 0,
$second // 0, $_);
    }

Trying it on some input data:

    cimtrak.log.06-08-2018_16:07:39.zip
    cimtrak.log.06-08-2018_17:07:39.zip
    cimtrak.log.07-08-2018_06:07:39.zip
    cimtrak.log.07-08-2018_16:07:39.zip
    cimtrak.log.12-08-2016_06:07:39.zip
    cookies
    asbestos
    fire engine
    perl6
    butterflies

results in:

    asbestos
    butterflies
    cookies
    fire engine
    perl6
    cimtrak.log.12-08-2016_06:07:39.zip
    cimtrak.log.06-08-2018_16:07:39.zip
    cimtrak.log.06-08-2018_17:07:39.zip
    cimtrak.log.07-08-2018_06:07:39.zip
    cimtrak.log.07-08-2018_16:07:39.zip

This is the schwartzian transform that was mentioned in another mail.
why it wasn't actually shown, i have no clue :)

Hope that helps
  - Timo

Reply via email to