perl脚本的意外输出

15e*_*153 1 perl activestate stat

以下脚本不生成输出:

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");
Run Code Online (Sandbox Code Playgroud)

c:\testfile 存在.

我已经在SO上看到了几个答案 - 例如 - 这似乎表明返回的数组stat()应该有一些有意义的东西,但我没有看到实际情况.

这是Windows 7上的64位ActiveState Perl.

统计数据不会做那些答案似乎暗示,或者Perl的文件日期/时间功能在Windows下运行(或64位Windows,还是某些?)

Sob*_*que 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);
Run Code Online (Sandbox Code Playgroud)

正如评论中提到的那样 - perl的内置统计工作如上所述.您不需要使用statFile::Stat为了这样做.它们只为相同的功能提供不同的接口.

如果你想用File::stat它来做它像这样:

use File::stat;

my $filename = 'c:\Users\username\Documents\asdf23rasdf.pl';
my $stats = stat($filename);
print( $stats -> mtime);
Run Code Online (Sandbox Code Playgroud)


ike*_*ami 6

File :: stat替换stat为具有不同接口的那个.适当地删除use File::stat;或使用它stat.