in reply to No DESTROY object.
This would work as intended:
use strict; use warnings; package Foo; sub new { my $class = shift; return bless( eval 'sub { print "Hello!\n" }', $class ); } sub DESTROY { print "DESTROYing $_[0]\n"; return; } package main; my $object = Foo->new; print "Created $object\n"; $object->(); undef $object; print "Done.\n";
# Created Foo=CODE(0x82cafec) # Hello! # DESTROYing Foo=CODE(0x82cafec) # Done.
Or use closures:
sub new { my $class = shift; my $string = "Hello!\n"; return bless( sub { print $string }, $class ); }
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: No DESTROY object.
by gam3 (Curate) on Jan 22, 2010 at 16:16 UTC | |
by WizardOfUz (Friar) on Jan 22, 2010 at 17:20 UTC | |
by gam3 (Curate) on Jan 23, 2010 at 10:35 UTC |
In Section
Seekers of Perl Wisdom