NAME¶
Path::Class::File::Stat - cache and compare stat() calls on a Path::Class::File
object
SYNOPSIS¶
use Path::Class::File::Stat;
my $file = Path::Class::File::Stat->new('path','to','file');
# $file has all the magic of Path::Class::File
# sometime later
if ($file->changed)
{
# do something provocative
}
DESCRIPTION¶
Path::Class::File::Stat is a simple extension of Path::Class::File.
Path::Class::File::Stat is useful in long-running programs (as under mod_perl)
where you might have a file handle opened and want to check if the underlying
file has changed.
METHODS¶
Path::Class::File::Stat extends Path::Class::File objects in the following ways.
use_md5¶
Calling this method will attempt to load Digest::MD5 and use that instead of
stat() for creating file signatures. This is similar to how
File::Modified works.
changed¶
Returns the previously cached File::stat object if the file's device number and
inode number have changed, or if the modification time or size has changed.
Returns 0 (false) otherwise.
While File::Modified uses a MD5 signature of the
stat() of a file to
determine if the file has changed,
changed() uses a simpler (and
probably more naive) algorithm. If you need a more sophisticated way of
determining if a file has changed, use the
restat() method and compare
the cached File::stat object it returns with the current File::stat object.
Example of your own
changed() logic:
my $oldstat = $file->restat;
my $newstat = $file->stat;
# compare $oldstat and $newstat any way you like
Or just use File::Modified instead.
restat¶
Re-cache the File::stat object in the Path::Class::File::Stat object. Returns
the previously cached File::stat object.
The
changed() method calls this method internally if
changed() is
going to return true.
SEE ALSO¶
Path::Class, Path::Class::File, File::Signature, File::Modified
AUTHOR¶
Peter Karman, <karman@cpan.org>
COPYRIGHT AND LICENSE¶
Copyright (C) 2006 by Peter Karman
This library is free software; you can redistribute it and/or modify it under
the same terms as Perl itself.