---
name: "Memoize::ExpireLRU"
section: "3pm"
platform: "linux"
package: "libmemoize-expirelru-perl"
version: "0.56-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Memoize::ExpireLRU"
---

# Memoize::ExpireLRU(3pm)

Expiry plug-in for Memoize that adds LRU cache expiration

## NAME

Memoize::ExpireLRU - Expiry plug-in for Memoize that adds LRU cache expiration

## SYNOPSIS

```
    use Memoize;
    memoize('slow_function',
            TIE => [Memoize::ExpireLRU,
                    CACHESIZE => n,
                   ]);
```

Note that one need not `"use"` this module. It will be found by the Memoize module.

The argument to `"CACHESIZE"` must be an integer. Normally, this is all that is needed. Additional options are available:

```
        TUNECACHESIZE => m,
        INSTANCE      => 'descriptive_name',
        TIE           => '[DB_File, $filename, O_RDWR | O_CREATE, 0666]'
```

## DESCRIPTION

For the theory of Memoization, please see the Memoize module documentation. This module implements an expiry policy for Memoize that follows LRU semantics, that is, the last n results, where n is specified as the argument to the `"CACHESIZE"` parameter, will be cached.

## PERFORMANCE TUNING

It is often quite difficult to determine what size cache will give optimal results for a given function. To aid in determining this, ExpireLRU includes cache tuning support. Enabling this causes a definite performance hit, but it is often useful before code is released to production.

To enable cache tuning support, simply specify the optional `"TUNECACHESIZE"` parameter with a size greater than that of the `"CACHESIZE"` parameter.

When the program exits, a set of statistics will be printed to stderr. If multiple routines have been memoized, separate sets of statistics are printed for each routine. The default names are somewhat cryptic: this is the purpose of the `"INSTANCE"` parameter. The value of this parameter will be used as the identifier within the statistics report.

## DIAGNOSTIC METHODS

Two additional routines are available but not exported. Memoize::ExpireLRU::ShowStats returns a string identical to the statistics report printed to STDERR at the end of the program if test caches have been enabled; Memoize::ExpireLRU::DumpCache takes the instance name of a memoized function as a parameter, and returns a string describing the current state of that instance.

## SEE ALSO

Memoize

## REPOSITORY

\<https://github.com/neilb/Memoize-ExpireLRU\>

## AUTHOR

Brent B. Powers (B2Pi), Powers@B2Pi.com

## COPYRIGHT AND LICENSE

This software is copyright (c) 1999 by Brent B. Powers.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
