in reply to File date

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

Replies are listed 'Best First'.
Re^2: File date
by natol44 (Sexton) on Sep 19, 2014 at 16:00 UTC
    Thanks to all, and Luke was right: I should have used $dir.$file instead of $file, it is correct now.

    About the use File::stat or use File::Stat - Stat with a big S is unknown in my Perl?! Cannot install File::Stat in cpan! So I used File::stat (small 's'), and even as you suggested removed it and used the stat inside function. All is right now, thank you!