in reply to Sort directories by date

#!/usr/bin/perl # http://perlmonks.org/?node_id=1143273 use strict; use warnings; my @dirs = qw( 12112014 01052015 02202015 03102015 01012011 04092015 09092015 ); my $latest = (sort { $a % 1e4 <=> $b % 1e4 } sort @dirs)[-1]; print "latest dir $latest\n";

Because sort is stable :)

Replies are listed 'Best First'.
Re^2: Sort directories by date
by Anonymous Monk on Sep 29, 2015 at 00:49 UTC

    The rest of your sub is much simpler.

    return [ glob "/my_dir/$latest/*.txt" ]; }

    (untested)

      Sort of like this...

      sub direc { my $dir = "/my_dir"; my @dirs = map m[/(\d{8})\z], glob "/$my_dir/*"; my $latest = (sort { $a % 1e4 <=> $b % 1e4 } sort @dirs)[-1]; [ glob "/my_dir/$latest/*.txt" ]; }

      (untested)