my %file_date; for ( glob '/path/to/*.log' ) { $file_date{$_} = (stat)[9]; } my $newest = ( sort { $file_date{$b} <=> $file_date{$a} } keys %file_age )[0];