時間がないので走り書き…
package Object::B;
sub new {
my $class = shift;
bless { a => shift }, $class;
}
sub DESTROY {
}
package Object::A;
my @B;
sub createB {
my $self = shift;
push(@B, Object::B->new($self));
$self->{b_index} = $#B;
}
sub destroyB {
my $self = shift;
undef $B[$self->{b_index}];
}
sub b {
my $self = shift;
$B[$self->{b_index}];
}
sub new {
my $class = shift;
my $self = bless {}, $class;
$self->createB;
self;
}
sub DESTROY {
my $self = shift;
$self->destroyB;
}
package main;
{
my $a = Object::A->new;
}