in reply to Re: comparing 2 file time date stamps
in thread comparing 2 file time date stamps

Corion, Below is the code I ran.
#!C:/PERL/bin/perl.exe -w use strict; my $file = 'c:/Steep/USA Data/State/KY/KY2.gif'; print "Checking '$file'\n"; if( -e $file ) { system "dir $file"; my $mtime= (stat($file))[9]; print "Mtime: $mtime\n"; print "As string: " . localtime($mtime); } else { print "File '$file' does not exist, skipping\n"; } $file = 'c:/usr/www/steepusa/stage/KY/KY2.gif'; print "\n\r\n\rChecking '$file'\n"; if( -e $file ) { system "dir $file"; my $mtime= (stat($file))[9]; print "Mtime: $mtime\n"; print "As string: " . localtime($mtime); } else { print "File '$file' does not exist, skipping\n"; }
The output follows.
Checking 'c:/Steep/USA Data/State/KY/KY2.gif'
Parameter format not correct - "Steep"
Mtime: 1415235120
As string: Wed Nov  5 19:52:00 2014

Checking 'c:/usr/www/steepusa/stage/KY/KY2.gif'
Invalid switch - "usr"
Mtime: 1415235120
As string: Wed Nov  5 19:52:00 2014

The system command doesn't seem to like the file name as I've formed it.

Replies are listed 'Best First'.
Re^3: comparing 2 file time date stamps
by Corion (Pope) on Nov 06, 2014 at 14:26 UTC

    Ah - if you specify the path names with backslashes instead of forward slashes, the Windows built-in tools will understand them from the command line:

    my $file = "c:\\Steep\\USA Data\\State\\KY\\KY2.gif";
      It still barks at the space in the USA Data. I've tried several suggestions, as this is pretty common apparently, to no avail.

        Yes. If you have a space in the filename, you will need to quote the filename when passing it to dir, just like on the command line:

        system qq(dir "$file");