It seems from your code that you don't want to use File::stat. That module replaces your stat function with one that returns File::Stat objects that can be queried by name (like stat($filename)->mtime), rather than returning lists. Your first few lines of code will probably work if you remove use File::stat.
Note that
print "$filename at (stat($filename))[9]\n\n";
has no chance of behaving the way you expect, because Perl has no way of knowing that that stat is supposed to be a function call—it's treated like any other text. (To put it more succinctly, function calls aren't interpolated.) You can write
print "$filename at (", ( stat($filename) )[9], "\n\n";
or use the old trick of array de-referencing:
print "$filename at (@{[ ( stat($filename) )[9] ]})\n\n";
UPDATE: If you do want to use File::stat, then you should replace
($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,$bl
+ksize,$blocks) = stat($filename) or die "Can't stat file $filename\n"
+;
by
my $stat = stat($filename) or die "Can't stat file $filename";
(no need for that newline), and then, rather than trying to access an array that isn't there, use a method call:
print "$filename at (", $stat->mtime, ")\n";
|