Attribute::Memoize - Attribute interface to Memoize.pm |
Attribute::Memoize - Attribute interface to Memoize.pm
use Attribute::Memoize; sub fib :Memoize { my $n = shift; return $n if $n < 2; fib($n-1) + fib($n-2); }
$|++; print fib($_),"\n" for 1..50;
This module makes it slightly easier (and modern) to memoize a
function by providing an attribute, :Memoize
that makes it
unnecessary for you to explicitly call Memoize::memoize()
.
Options can be passed via the attribute per usual (see the
Attribute::Handlers
manpage for details, and the Memoize
manpage for information on memoizing options):
sub f :Memoize(NORMALIZER => 'main::normalize_f') { ... }
However, since the call to memoize()
is now done in a different
package, it is necessary to include the package name in any function
names passed as options to the attribute, as shown above.
None known so far. If you find any bugs or oddities, please do inform the author.
Marcel Grünauer, <marcel@codewerk.com>
Copyright 2001 Marcel Grünauer. All rights reserved.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
perl(1), Attribute::Handlers(3pm).
Attribute::Memoize - Attribute interface to Memoize.pm |