Take me over?
NAME
Class::Method::Cache::FastMmap - Cache method results using Cache::FastMmap
VERSION
version v0.3.2
SYNOPSIS
package MyClass;
use Class::Method::Cache::FastMmap;
sub my_method {
...
}
cache 'my_method' => (
serializer => 'storable',
expire_time => '1h',
);
DESCRIPTION
This package allows you to easily cache the results of a method call using Cache::FastMmap.
EXPORTS
cache
cache $method => %options;
This wraps the $method
with a function that caches the return value.
It assumes that the method returns a defined scalar value and that the method arguments are serialisable.
The %options
are as follows:
cache
-
is used to specify a different (shared) cache. You may use another caching class, so long as it provides
get
andset
methods.Added v0.2.0.
key_cb
-
is used to provide a custom key-generation function. If none is specified, then Object::Signature is used.
The function should expect a single argument with an array reference corresponding to the original method call parameters:
$key_cb->( [ $self, @_ ] );
prefix
-
This is the prefix too prepend to the key. It defaults to the class and method name when the "cache" is specified, or an empty string otherwise.
Added v0.2.0.
Remaining %options
are passed to the constructor for Cache::FastMmap.
As of v0.3.0, you can import the cache
method with a different namme:
use Class::Method::Cache::FastMmap
"cache" => { -as => "memoize" };
sub my_method {
...
}
memoize 'my_method' => (
serializer => 'storable',
expire_time => '1h',
);
Undefined results are not cached. So if your method returns undef
on failure, then it never cache that result.
SEE ALSO
SOURCE
The development version is on github at https://github.com/robrwo/Class-Method-Cache-FastMmap and may be cloned from git://github.com/robrwo/Class-Method-Cache-FastMmap.git
BUGS
Please report any bugs or feature requests on the bugtracker website https://github.com/robrwo/Class-Method-Cache-FastMmap/issues
When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.
AUTHOR
Robert Rothenberg <rrwo@cpan.org>
Some development of this module was sponsored by Science Photo Library https://www.sciencephoto.com.
COPYRIGHT AND LICENSE
This software is Copyright (c) 2018 by Robert Rothenberg.
This is free software, licensed under:
The Artistic License 2.0 (GPL Compatible)