Tie::Hash::MultiKeyCache - aged cache or fifo
This module is an extension of Tie::Hash::MultiKey and it iherits all of the methods and characteristics of the parent module. Only the methods unique to this module are shown here. See Tie::Hash::MultiKey for complete documentation.
use Tie::Hash::MultiKeyCache; $thm = tie %h, 'Tie::Hash::MultiKeyCache', SIZE => n, ADDKEY => false, DELKEY => false; or $thm = tie %h, 'Tie::Hash::MultiKeyCache', SIZE => n, FIFO => true, $rv = $thm->lock($key); $rv = $thm->unlock($key); $size = $thm->cacheSize(); $oldsize = $thm->newSize();
This module provides a setable fixed size CACHE implemented as a hash with multiple keys per value. In normal use as new values are added to the CACHE and the CACHE size is exceeded, the least used items will drop from the CACHE. Particular items may be locked into the CACHE so they never expire.
The CACHE may also be configured as a FIFO where the first items added to the CACHE are the first to drop out when size is exceeded. As in the recent use scenario, items LOCKED into CACHE will not be dropped.
$thm = tie %h, 'Tie::Hash::MultiKeyCache',
SIZE => n, ADDKEY => false, # optional DELKEY => false; # optional FIFO => true; # optional over rides ADD,DEL KEY
The arguments beyond the package name may be specified as a hash as shown or as a reference to a hash.
$thm = tie %h $package, { SIZE => n, options... }
Creates a CACHE of maximum SIZE value elements and returns a method pointer. Default operation refreshes cache positioning for an element when a ADD Key or DELETE Key operation is performed. To disable this feature, provide ADDKEY and/or DELKEY with a false value.
input: hash, cachesize returns: method pointer
The method pointer may also be accessed later with:
$thm = tied(%h);
$rv = $thm->lock($key);
Locks the value item into CACHE via any key in the value item's key set.
input: any key associated with value return: true on success false if the key does not exist
$rv = $thm->unlock($key);
Unlocks the value item via any key in the value item's key set. No operation is performed if the value item is not locked in CACHE.
$size = $thm->cacheSize;
Returns the set size of the CACHE. This may not be the same as the number of items in the CACHE. See: Tie::Hash::MultiKey $thm->size;
input: none returns: set size of the CACHE
$oldsize = $thm->newSize($newsize);
Sets the maximum size of the CACHE to a new size and returns the old size. A CACHE flush is performed if the new CACHE is smaller than the actual size of the current CACHE. However, items locked in CACHE will not be flushed if their number exceeds the new size parameter.
Michael Robinton, <miker@cpan.org>
Copyright 2014, Michael Robinton
This program is free software; you may redistribute it and/or modify it under the same terms as Perl itself.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Tie::Hash, Tie::Hash::MultiKey
1 POD Error
The following errors were encountered while parsing the POD:
You forgot a '=back' before '=head1'
To install Tie::Hash::MultiKeyCache, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Tie::Hash::MultiKeyCache
CPAN shell
perl -MCPAN -e shell install Tie::Hash::MultiKeyCache
For more information on module installation, please visit the detailed CPAN module installation guide.