BBC (British Broadcasting Corporation)

NAME

Cache::AgainstFile::Storable - cache data structures parsed from files in Storable files

SYNOPSIS

        use Cache::AgainstFile;
        my $cache = new Cache::AgainstFile(
                \&loader, 
                {
                        Method => 'Storable',
                        CacheDir => '/var/tmp/cache/myapp',
                        # ...
                }
        );

        $data = $cache->get($filename);

DESCRIPTION

Data structures parsed from files are cached in "shadow" storable files. If parsing is significantly more expensive than file I/O (e.g. with XML files), then this will offer some benefit.

This backend is suitable for non-persistent environments (e.g. CGI scripts) where you want the cache to outlive the process. For persistent environments, the Memory backend may be more suitable as it saves on file I/O.

count() and size() are relatively expensive operations involving scanning the cache directory.

OPTIONS

CacheDir

Directory in which to store cache files. This is mandatory.

MaxATime

Purge items older than this. Value is in seconds (default=undefined=infinity)

MaxItems

Purge oldest items from the cache to reduce the number of items in the cache to be at most this number. Value should be an integer (default=undefined=infinity)

NoStat

Don't stat files to validate the cache - items are served from the cache until they are purged. Valid values are 0|1 (default=0, i.e. files are statted)

Locking

Valid values are Flock and AtomicWrite (default is AtomicWrite). If neither of these are to your taste, consider using Cache::AgainstFile::CacheModule with another caching module. Some other file caching modules on CPAN are:

Cache::FileCache

This uses atomic writes.

Cache::File

This uses File::NFSLock for locking (no locking is also an option)

VERSION

$Revision: 1.22 $ on $Date: 2006/05/09 09:02:32 $ by $Author: mattheww $

AUTHOR

John Alden & Piers Kent <cpan _at_ bbc _dot_ co _dot_ uk>

COPYRIGHT

(c) BBC 2005. This program is free software; you can redistribute it and/or modify it under the GNU GPL.

See the file COPYING in this distribution, or http://www.gnu.org/licenses/gpl.txt