On Fri, 9 Jul 2004 02:55:41 -0700, John W. Krahn wrote
> 
> Perhaps you should keep the localtime data local to the sub (sort of
> like a closure.)
> 
> {   my %data;
>     sub getDateTime {
>         unless ( %data ) {
>             @data{ qw[sec min hour day mon year wday yday isdst] } = 
> localtime $^T;            $data{ year } += 1900;            $data{ 
> mon }++;        }        return %data;    } }
> 

I read about closures in the the o'reilly objects, classes and references
book, but I don't think it sunk in.  Would this work if this sub is in a
module?  Does this basically make %data the equivalent of a Java static, where
all calls to the sub get the same variable?  If the caller undefs all
references to %data, won't %data disappear?  I don't see how the syntax of
putting it in another set of braces makes it a closure (don't have the book
with me today).  Anyway if you have time to answer any of these issues I would
appreciate it.  For now, until I can prove (at least to myself) that $^T is
changing I'm going to leave the code as it is, but I would like to understand
more about closures (not sure that's for a beginner's forum?).

Thanks again,

   -John

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to