以下脚本不产生输出:
use File::stat;
use Time::localtime;
my $filename = 'c:\testfile';
my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,
$atime,$mtime,$ctime,$blksize,$blocks)
= stat($filename);
print("$mtime");
c:\testfile
存在。
我在SO上看到了几个答案 - this, for example - 这似乎表明stat()
返回的数组应该有一些有意义的答案,但我还没有在实践中看到了这种情况。
这是Windows 7上的64位ActiveState Perl。
统计数据不能做那些答案似乎暗示的事情,或者Perl的文件日期/时间功能在Windows(或64位Windows,或某些类似的?)下无法正常工作吗?
答案 0 :(得分:7)
这很好用:
#!perl
use strict;
use warnings;
my $filename = 'c:\Users\username\Documents\asdf23rasdf.pl';
my ($dev, $ino, $mode, $nlink, $uid, $gid, $rdev,
$size, $atime, $mtime, $ctime, $blksize, $blocks
) = stat($filename);
print($mtime);
正如评论中提到的那样 - perl的内置统计工作如上所述。您无需使用File::Stat
或File::stat
即可。它们只为相同的功能提供不同的接口。
如果您想使用File::stat
,请按以下步骤操作:
use File::stat;
my $filename = 'c:\Users\username\Documents\asdf23rasdf.pl';
my $stats = stat($filename);
print( $stats -> mtime);
答案 1 :(得分:6)
File :: stat将stat
替换为具有不同接口的use File::stat;
。删除stat
或正确使用其{{1}}。