Perl:使用stat()

Bru*_*779 1 perl filehandle

我试图在perl脚本中使用stat().我已经阅读了关于perldocs的文档,说如何使用它:

$mode = (stat($filename))[2];
Run Code Online (Sandbox Code Playgroud)

但这不起作用:

$mode = (stat($filename))[2];
print $mode;

Use of uninitialized value $mode in print at ... 
Run Code Online (Sandbox Code Playgroud)

我认为需要另一种语法来访问stat返回的值.Data :: dumper返回此结构:

   @stat = stat($filename);
   print Dumper(@stat);

  $VAR1 = bless( [
   48,
   305368,
   33188,
   1,
   0,
   0,
   0,
   '2011',
   1397569653,
   1397569653,
   1397569653,
   4096,
   8
  ], 'File::stat' );
Run Code Online (Sandbox Code Playgroud)

cjm*_*cjm 9

显然,你也有这条线

use File::stat;
Run Code Online (Sandbox Code Playgroud)

在你的程序中,忘了提它. File :: statstat使用返回对象的版本覆盖内置函数.您应该阅读其文档.

在你的情况下,你想要:

use File::stat;

my $mode = stat($filename)->mode;
Run Code Online (Sandbox Code Playgroud)