http://qs321.pair.com?node_id=11133968


in reply to reading through dated directories

I suggest using Path::Tiny for working with the files: its visit method can recursively walk a directory tree and apply a subroutine to each filename found, accumulating a list of matching files. The solution to matching the filenames will depend on the naming format used.

Update: since you showed the format elsewhere ... try something like this:

use strict; use warnings; use feature 'say'; use Data::Dumper; use Path::Tiny; use Time::Piece; my $root = "/Users/1nickt/perlmonks/11133966"; my $today = localtime->strftime('%Y%m%d'); my %list; path($root)->visit(sub { my $path = shift; next unless -d $path; my $date = substr($path, -8); if ( $date =~ /^[0-9]{4}[0-2][0-9][0-3][0-9]$/ && $date gt $today +) { push(@{ $list{$_->parent} }, $path =~ s{.+/}{}r); } }, { recurse => 1, }); say Dumper \%list;

Hope this helps!


The way forward always starts with a minimal test.