分析下这个程序

分析下这个程序

分析下这个程序
die "No file names supplied!\n" unless @ARGV;
my $oldest_name = shift @ARGV;
my $oldest_age = -M $oldest_name;
foreach (@ARGV) {
my $age = -M;
($oldest_name, $oldest_age) = ($_, $age)
if $age > $oldest_age;
}
printf "The oldest file was %s, and it was %.1f days old.\n",
$oldest_name, $oldest_age;

这个程序我看不懂啊,请大家帮详细一句句分析下吧.尤其是这部分:
foreach (@ARGV) {
my $age = -M;
($oldest_name, $oldest_age) = ($_, $age)
if $age > $oldest_age;
}
谢谢您了!
先明白-----M Script.
先明白

-M Script start time minus file modification time, in days.

这个文件操作符的左右,可以知道文件有多长时间没有修改了

foreach循环不是很难,从数组中取出每个文件名,对每个文件判断有多久没有修改了,在和之前最老的文件比较,如果这个老,就把最老的文件名和时间更新。知道数组中所有文件处理完毕。