Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Re^3: my $cache = undef if undef;

by Aristotle (Chancellor)
on Jan 26, 2005 at 17:48 UTC ( #425313=note: print w/ replies, xml ) Need Help??


in reply to Re^2: my $cache = undef if undef;
in thread my $cache = undef if undef;

It cannot be clobbered, and there are no memory leaks in either case. It's an effect of how the pads for lexical variables are maintained by the Perl core. Larry didn't want to promise this will always work, but it's very unlikely to break, since it's kind of an accidental feature of the Perl guts architecture. A lot would have to change to break it.

Makeshifts last the longest.


Comment on Re^3: my $cache = undef if undef;
Re^4: my $cache = undef if undef;
by ysth (Canon) on Jan 27, 2005 at 06:32 UTC
    It may very well be gone someday in perl5. Really. Don't use it. Also note that the staticness is relative to the pad, not the function; for instance, the data does not persist for recursive calls to the function.

      If you look a few nodes further up the thread you'll see I'm advising against its use anyway. :-) I'm simply saying that there is a lot of inertia against its disappearance. That's not a promise, of course. It does work in the meantime though, and can very occasionally be useful so long as we're talking about throwaway code (I used it in a oneliner once to save a few keystrokes.)

      Makeshifts last the longest.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://425313]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (9)
As of 2014-12-26 08:10 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (168 votes), past polls