Name

stat

Synopsis

stat file
                  

Returns a 13-element list giving the statistics for a file, indicated by either a filehandle or an expression that gives its name. It’s typically used as follows:

($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,
    $atime,$mtime,$ctime,$blksize,$blocks)
            = stat $filename;

Not all fields are supported on all filesystem types. Here are the meanings of the fields:

Field

Meaning

dev

Device number of filesystem

ino

Inode number

mode

File mode (type and permissions)

nlink

Number of (hard) links to the file

uid

Numeric user ID of file’s owner

gid

Numeric group ID of file’s owner

rdev

The device identifier (special files only)

size

Total size of file, in bytes

atime

Last access time since the epoch

mtime

Last modification time since the epoch

ctime

Inode change time (not creation time!) since the epoch

blksize

Preferred blocksize for file system I/O

blocks

Actual number of blocks allocated

$dev and $ino, taken together, uniquely identify a file. The $blksize and $blocks are likely defined only on BSD-derived filesystems. The $blocks field (if defined) is reported in 512-byte blocks. Note that $blocks*512 can differ greatly from $size for files containing unallocated blocks, or “holes,” which aren’t counted in $blocks.

If stat is passed the special filehandle consisting of an underline, no actual stat is done, but the current contents of the stat structure from the last stat or stat-based file test (the -x operators) is returned.

Get Perl in a Nutshell, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.