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]

Reply via email to