opendir( FOO, $somedir ) or die "Can't opendir $somedir: $!\n"; my @PC_dirs = grep /^PC/ and -d "$somedir/$_", readdir( FOO ); closedir( FOO ); my $most_recent = (map { $_->[0] } sort { $a->[1] <=> $b->[1] } map { [ $_, -M "$somedir/$_" ] } @PC_dirs)[0];