delete $A::{bbb} deletes an entry from the
%A:: stash,
which means that there is one less reference to the
*A::b glob. However, for effeciency the GVSV op (as executed in
$A::bbb) doesn't lookup the stash at runtime, but instead at compile time it caches a direct pointer to the glob. These references to the glob ensure that it doesn't go away. An eval shows the difference:
$A::bbb = 3;
delete $A::{bbb};
printf "direct=%d eval=%d\n", $A::bbb, eval q{$A::bbb};
outputs:
direct=3 eval=0
Dave.