#!/usr/local/bin/perl use strict; use warnings; { package Dummy; sub new { bless $_[1], $_[0] } sub DESTROY { warn "($_[0])" } } { my $mom = Dummy->new( {} ); my $son = Dummy->new( {} ); $mom->{son} = 'me'; $son->{mom} = 'her'; # こちらはここで解放されるが… } { my $mom = Dummy->new( {} ); my $son = Dummy->new( {} ); $mom->{son} = $son; $son->{mom} = $mom; # こちらはここではなく… } warn "Goodbye, world!"; # ここでやっと解放される