in reply to Setting a variable equal to a reference
The value of that element is a ref. That ref is not referenced by anything else, so it will be freed.
The referenced hash is is referenced by something else (the ref in $foo->{by_name}{bob}), so it won't be freed.
So,
Nothing touches the hash %{ $foo->{by_name} }.
Nothing touches the ref in $foo->{by_name}{bob} (a copy of the ref that was in $foo->{by_id}{0}).
The hash referenced by $foo->{by_name}{bob} is not freed.
|
|---|