Perl:使用stat()

时间:2014-04-15 14:07:31

标签: perl filehandle

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

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

但这不起作用:

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

Use of uninitialized value $mode in print at ... 

我认为需要另一种语法来访问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' );

2 个答案:

答案 0 :(得分:9)

显然,你也有一行

use File::stat;

在你的程序中,忘了提及它。 File::stat使用返回对象的版本覆盖内置stat函数。您应该阅读its documentation

在您的情况下,您需要:

use File::stat;

my $mode = stat($filename)->mode;

答案 1 :(得分:-1)

你可以用数组切片(stat $ filename)[2]

来做