$last = -1; opendir(D, "DIRNAME") or die $!; foreach (readdir(D)) { ($num) = $_ =~ /(\d+)/; next unless $num; if ($num > $last) { $pick = $_; $last = $num; } } closedir(D); # Now operate on $pick #### $last = -1; opendir(D, "DIRNAME") or die $!; foreach (readdir(D)) { $num = (stat $_)[9]; if ($num > $last) { $pick = $_; $last = $num; } } closedir(D); # Now operate on $pick