my
%value_of
:ATTR(:name<value> :
default
<()>);
sub
START {
pass(
"START method called for ID ${ $_[0] }"
);
}
sub
BUILD {
pass(
"BUILD called for ID ${ $_[0] }"
);
}
sub
DEMOLISH { pass
"DEMOLISH called for ID ${ $_[0] }"
}
1;
1;
plan
tests
=> 9;
my
$test
;
ok
$test
= MyPackage->new();
my
$id
= ${
$test
};
undef
$test
;
my
$basic
= MyPackageBasic->new();
ok
$test
= MyPackage->new({
value
=>
$basic
});
is ${
$test
},
$id
,
'Obj has ID of destroyed object'
;
ok ${
$basic
} > ${
$test
},
'Obj created before has greater ID than cached obj'
;
{
no
warnings
qw(redefine)
;
*MyPackage::DEMOLISH
=
sub
{}
}