Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
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.

Replies are listed 'Best First'.
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
Domain Nodelet?
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 having an uproarious good time at the Monastery: (5)
As of 2023-03-30 17:53 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Which type of climate do you prefer to live in?






    Results (74 votes). Check out past polls.

    Notices?