如何获取文件的最后修改时间在Perl?

前端之家收集整理的这篇文章主要介绍了如何获取文件的最后修改时间在Perl?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我有一个文件句柄$ fh。我可以检查它的存在与-e $ fh或其文件大小与-s $ fh或 a slew of additional information about the file.如何获得其最后修改的时间戳?

解决方法

您可以使用内置的模块File :: stat(包含在Perl 5.004中)。 @H_301_6@调用stat($ fh)返回一个数组,其中包含有关传入(从perlfunc man page for stat)的文件句柄的以下信息:

0 dev      device number of filesystem
  1 ino      inode number
  2 mode     file mode  (type and permissions)
  3 nlink    number of (hard) links to the file
  4 uid      numeric user ID of file's owner
  5 gid      numeric group ID of file's owner
  6 rdev     the device identifier (special files only)
  7 size     total size of file,in bytes
  8 atime    last access time since the epoch
  9 mtime    last modify time since the epoch
 10 ctime    inode change time (NOT creation time!) since the epoch
 11 blksize  preferred block size for file system I/O
 12 blocks   actual number of blocks allocated
@H_301_6@此数组中的第9个元素将为您提供自时代(1970年1月1日格林尼治时间1970年1月1日)以来的最后修改时间。从中你可以确定当地时间:

my $epoch_timestamp = (stat($fh))[9];
my $timestamp       = localtime($epoch_timestamp);
@H_301_6@为了避免在前面的例子中需要的幻数9,另外使用Time :: localtime,另一个内置模块(也包括在Perl 5.004中)。这需要一些(可以说)更清晰的代码

use File::stat;
use Time::localtime;
my $timestamp = ctime(stat($fh)->mtime);
原文链接:https://www.f2er.com/Perl/173507.html

猜你在找的Perl相关文章