File::stat(3p) Perl Programmers Reference Guide File::stat(3p)
File::stat - by-name interface to Perl's built-in stat()
functions
use File::stat;
$st = stat($file) or die "No $file: $!";
if ( ($st->mode & 0111) && $st->nlink > 1) ) {
print "$file is executable with lotsa links\n";
}
use File::stat qw(:FIELDS);
stat($file) or die "No $file: $!";
if ( ($st_mode & 0111) && $st_nlink > 1) ) {
print "$file is executable with lotsa links\n";
}
This module's default exports override the core stat() and
lstat() functions, replacing them with versions that return
"File::stat" objects. This object has methods that return
the similarly named structure field name from the stat(2)
function; namely, dev, ino, mode, nlink, uid, gid, rdev,
size, atime, mtime, ctime, blksize, and blocks.
You may also import all the structure fields directly into
your namespace as regular variables using the :FIELDS import
tag. (Note that this still overrides your stat() and
lstat() functions.) Access these fields as variables named
with a preceding "st_" in front their method names. Thus,
"$stat_obj->dev()" corresponds to $st_dev if you import the
fields.
To access this functionality without the core overrides,
pass the "use" an empty import list, and then access func-
tion functions with their full qualified names. On the other
hand, the built-ins are still available via the "CORE::"
pseudo-package.
As of Perl 5.8.0 after using this module you cannot use the
implicit $_ or the special filehandle "_" with stat() or
lstat(), trying to do so leads into strange errors. The
workaround is for $_ to be explicit
my $stat_obj = stat $_;
and for "_" to explicitly populate the object using the
unexported and undocumented populate() function with
CORE::stat():
perl v5.8.8 2005-02-05 1
File::stat(3p) Perl Programmers Reference Guide File::stat(3p)
my $stat_obj = File::stat::populate(CORE::stat(_));
While this class is currently implemented using the
Class::Struct module to build a struct-like class, you
shouldn't rely upon this.
Tom Christiansen
perl v5.8.8 2005-02-05 2
Generated on 2012-02-20 02:47:02 by $MirOS: src/scripts/roff2htm,v 1.70 2011/12/03 18:21:12 tg Exp $
These manual pages and other documentation are copyrighted by their respective writers;
their source is available at our CVSweb,
AnonCVS, and other mirrors. The rest is Copyright © 2002‒2011 The MirOS Project, Germany.
This product includes material
provided by Thorsten Glaser.
This manual page’s HTML representation is supposed to be valid XHTML/1.1; if not, please send a bug report – diffs preferred.