The thing with -M is that it measures the age of the files, in days since $^T, which is initially set by perl to the epoch time when your program started. When you are running in mod_perl, don't expect $^T to be anywhere near the the present time, because it will be set to the time when your apache child started up.
If you want to make sure that -M always returns a positive value (for all files created in the past), you need to do something like this:
$^T = time(); my $fileage = -M $filename;
However, in your case, it looks like all you care about is finding the oldest file in a list of files. That can be achieved easy enough:
my ($oldest_file) = sort { -M $b <=> -M $a } @filenames;
Update: merlyn correctly pointed out that setting $^T does not guarantee a positive return value for -M when the datestamp on a file is set to some time in the future.
In reply to Re: Oldest file using -M
by ehdonhon
in thread Oldest file using -M
by Gerard
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |