# simplified example use Scalar::Util qw/weaken/; my $weak_class_ref; sub BUILD { my ($self, $ident, $args_ref) = @_; $weak_class_ref ||= {}; $example_hash_of{$ident} = $weak_class_ref; weaken( $weak_class_ref ); }