BSD-stat
view release on metacpan or search on metacpan
$st_dev if you import the fields.
Note: besides polluting the name space, :FIELDS comes with
performance penalty for setting extra variables. Unlike File::stat
which always sets $File::stat::st_* (even when not exported),
BSD::stat implements its own import mechanism to prevent performance
loss when $st_* is not needed
=head2 chflags
BSD::stat also adds chflags(). Like CORE::chmod it takes first
argument as flags and any following arguments as filenames.
for convenience, the followin constants are also set;
UF_SETTABLE 0x0000ffff /* mask of owner changeable flags */
UF_NODUMP 0x00000001 /* do not dump file */
UF_IMMUTABLE 0x00000002 /* file may not be changed */
UF_APPEND 0x00000004 /* writes to file may only append */
UF_OPAQUE 0x00000008 /* directory is opaque wrt. union *
UF_NOUNLINK 0x00000010 /* file may not be removed or renamed */
SF_SETTABLE 0xffff0000 /* mask of superuser changeable flags */
SF_ARCHIVED 0x00010000 /* file is archived */
SF_IMMUTABLE 0x00020000 /* file may not be changed */
SF_APPEND 0x00040000 /* writes to file may only append */
SF_NOUNLINK 0x00100000 /* file may not be removed or renamed */
so that you can go like
chflags(SF_ARCHIVED|SF_IMMUTABLE, @files);
just like CORE::chmod(), chflags() returns the number of files
successfully changed. when an error occurs, it sets !$ so you can
check what went wrong when you applied only one file.
to unset all flags, simply
chflags 0, @files;
=head2 utimes and lutimes
C<utimes()> and C<lutimes()) are introduced in version 1.30.
( run in 0.221 second using v1.01-cache-2.11-cpan-496ff517765 )