Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

Re^2: No DESTROY object.

by gam3 (Curate)
on Jan 22, 2010 at 17:15 UTC ( #819008=note: print w/ replies, xml ) Need Help??


in reply to Re: No DESTROY object.
in thread No DESTROY object.

There are 2 problems with your argument that jump out at me.

  1. first - DESTROY should still get called even if only once.
  2. second sub { $bob } does not get DESTROYed either and it certainly not immutable.
package Foo; sub print { print "@_\n"; } sub DESTROY { print "@_ DESTROY\n"; } our $bob = "x\n"; my $x = bless(sub {$bob}, 'Foo'); $x->print('$bob'); print $x->(); $bob = "y\n"; print $x->(); $bob = undef; __END__ Foo=CODE(0xe8a278) $bob x y
-- gam3
A picture is worth a thousand words, but takes 200K.


Comment on Re^2: No DESTROY object.
Download Code
Re^3: No DESTROY object.
by ambrus (Abbot) on Jan 22, 2010 at 17:22 UTC

    For your second question, if you replace our $bob to my $bob, then the DESTROY does get called. This way, perl knows that $bob is a global so it optimizes the sub constructor to a constant again.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (4)
As of 2014-07-12 22:16 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    When choosing user names for websites, I prefer to use:








    Results (241 votes), past polls