#!perl use strict; sub direc { my $dir = "/my_dir"; opendir DIR, $dir; # Read in all directories in /my_dir first my @month_dir = grep /^\d{8}$/, readdir(DIR); my %ymd = map {/(\d{4})(\d{4})/;$2.$1,$_} @month_dir ; my $latest_ymd = (sort keys %ymd)[-1]; my $latest_dir = $ymd{$latest_ymd}; closedir(DIR); # Now read in .txt files in latest directory found opendir LATESTDIR, "$dir/$latest_dir"; my @files = grep /\.txt$/, readdir(LATESTDIR); closedir(LATESTDIR); return \@files; }