in reply to deleting glob does not undef values?

It seems to me that delete doesn't work on stashes (%A:: in your case), only on hashes. Use either $A::bbb = undef as suggested above, or  { local $A::bbb = 3 }

But actually, this is a good point: why doesn't it work on stashes? That's a nice feature.