If using perl Cache::FileCache, some comments offering a helpful starting point to get a cache that works in a relatively well behaved and unsurprising way:
use Cache::FileCache; use File::Spec; my $cache = Cache::FileCache->new({    # "The namespace associated with this    # cache."    namespace => 'BJD-TESTING-app_id_cache_id',    # "The default expiration time for    # objects place in the cache."    # This is in seconds.    default_expires_in => 1,    # "Sets the auto purge interval. If this    # option is set to a particular time ( in    # the same format as the expires_in ),    # then the purge( ) routine will be    # called during the first set after the    # interval expires. The interval will    # then be reset."    #    # XXX To work needs at least one of    # auto_purge_on_set or auto_purge_on_get    # to be set to true    auto_purge_interval => 5,    auto_purge_on_set => 1,    # restrict access to the cache to just this    # user (data security)    # # NOTE that if you set directory_umask # but no cache_root you can end up clashing # with other users who will also be trying # to use (and maybe set the umask) on # /tmp/FileCache #    # If we care about data security set    # cache_root as well to put the files in    # out own private directory:    directory_umask => 0077,    cache_root =>      File::Spec->tmpdir()      . "/bjdean-perl-Cache-FileCache", });