perl -MMemoize -MMemoize::Expire -E "sub f {int rand 100}; tie my %cache => 'Memoize::Expire',LIFETIME=>2; memoize 'f',SCALAR_CACHE => [HASH => \%cache ]; for (1..10) {print f().$/; sleep 1}" 16 16 95 95 61 61 62 62 93 93 perl -MMemoize -MMemoize::Expire -E "sub f {int rand 100}; tie my %cache => 'Memoize::Expire',LIFETIME=>2; memoize 'f',SCALAR_CACHE => [HASH => \%cache ]; for (1..10) {say f(); sleep 1}" 89 89 89 89 89 89 89 89 89 89