in reply to Get newest file
You can use the module File::Find to traverse the directory structure and use stat to find the age of the file. The example below sets up a hash data structure that contains the name of the file and the last accessed modified time. The application then compares the values in the hash and prints out the newest file.
#!/usr/bin/perl use strict; use File::Find; use vars qw/%files/; sub findNewestFiles { my $element = $File::Find::name; return if (!-f $element); $files{$element} = (stat($element))[9]; } ####################################################### # MAIN ####################################################### my $dir = '/home/users/rich36'; find(\&findNewestFiles, $dir); my $newestfile; my $time = 0; while(my ($k, $v) = each(%files)) { if ($v > $time) { $newestfile = $k; $time = $v; } } $time = localtime($time); print "The newest file is $newestfile : $time\n"; exit;
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Re: Get newest file
by Rich36 (Chaplain) on Oct 27, 2002 at 20:31 UTC | |
by Spida (Acolyte) on Oct 27, 2002 at 21:00 UTC |