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]