Thanks but I don't see how this could work. I've tried using it, but to no avail
"Janek Schleicher" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED] > Rob Anderson wrote at Fri, 28 Mar 2003 14:45:07 +0000: > > > ------ module sub routine -------- > > > > sub test { > > my $param = shift; > > my $cache_key = "param=$param"; > > if (exists $cache{$cache_key}) { > > return $cache{$cache_key}; > > } > > sleep 1; > > $cache{$cache_key} = $param . "done"; # save the value > > } > > > > > > My problem with this is that I can't use strict, because I'm not declaring > > %cache. If I do use strict, I'm forced to declare %cache, and when the sub > > ends, the hash goes out of scope. So, my question is, can I create a > > 'static' hash for this fuctions that'll work with warnings and strict? I > > know that there are modules for caching functions, but I don't have much > > control of the environment and would rather not install extra modules. > > Try a closure: > > { > my %cache; > sub test { > my $param = shift; > my $cache_key = "param=$param"; > if (exists $cache{$cache_key}) { > return $cache{$cache_key}; > } > sleep 1; > $cache{$cache_key} = $param . "done"; # save the value > } > } > > > Greetings, > Janek -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]