use Path::Tiny qw/ path /; my @all_files = path( $dir )->realpath->children(); my @done = map { $$_[1] } sort { $$a[0] <=> $$b[0] } map { [ $_->stat->mtime, $_ ] } grep m{d2[^\\/]+$}, @all_files; my @dtwo = map { $$_[1] } sort { $$a[0] <=> $$b[0] } map { [ $_->stat->mtime, $_ ] } grep m{d1[^\\/]+$}, @all_files;