There are a few problems. First of all, your $file will contain the file name only, so you need to append the $dir to it. Just try it:
#!/usr/bin/perl use v5.14; use File::stat; my $dir = '/tmp/'; opendir(DIR, $dir) or die $!; while (my $file = readdir(DIR)) { next if ($file =~ m/^\./); say "Good idea" if (stat($dir.$file)); die "Bad idea" if (not defined stat($file)); }
Next one: if you want to use File::stat, you should use (stat $dir.$file)->9; instead of the way you use it now.
And the last thing: you will need to add 1900 to the year, unless you want to see 114 instead of 2014. A working example:
#!/usr/bin/perl use v5.14; use File::stat; my $dir = '/tmp/'; opendir(DIR, $dir) or die $!; while (my $file = readdir(DIR)) { next if ($file =~ m/^\./); my $mtime = (stat $dir.$file)->[9]; my($sec,$min,$hour,$mday,$mon,$year) = localtime($mtime); $year += 1900; say "File: $file, Mtime: $mday/$mon/$year"; }
regards,
Luke Jefferson
In reply to Re: File date
by blindluke
in thread File date
by natol44
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |