Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked

Re^3: No DESTROY object.

by WizardOfUz (Friar)
on Jan 22, 2010 at 17:20 UTC ( #819009=note: print w/replies, xml ) Need Help??

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

Errr ... no, it is not:

perl -we 'bless( \sub {}, "Foo" )->();' Not a CODE reference at -e line 1.
perl -we 'print bless( \sub {}, "Foo" ) . "\n";' Foo=REF(0x82998c4)

Update: To answer your question: What seems to be happening is that perl inlines the subroutine. See:

use strict; use warnings; package Foo; sub new { my $class = shift; return bless( sub { print "Hello\n" }, $class ); } sub DESTROY { print "DESTROYing $_[0]\n"; return; } package main; my $object = Foo->new; print "Created $object\n"; undef $object; print "Ha! Ha! Still there!\n"; { no strict 'refs'; my $symbol_table = \%{'Foo::'}; delete $symbol_table->{'new'}; } print "Done.\n";
# Created Foo=CODE(0x82b682c) # Ha! Ha! Still there! # DESTROYing Foo=CODE(0x82b682c) # Done.

Replies are listed 'Best First'.
Re^4: No DESTROY object.
by gam3 (Curate) on Jan 23, 2010 at 10:35 UTC
    Great answer. Thanks.
    -- gam3
    A picture is worth a thousand words, but takes 200K.

Log In?

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

How do I use this?Last hourOther CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (7)
As of 2023-12-11 08:51 GMT
Find Nodes?
    Voting Booth?
    What's your preferred 'use VERSION' for new CPAN modules in 2023?

    Results (41 votes). Check out past polls.