in reply to Safe / @ISA Problem

I've worked out what's going on (at least I think I have, and I know how to fix the problem now, so that's all I really care about). The warnings are because when the reference which is returned by B->new() is returned, it's then cleaned up - it's the cleanup which is issuing the warnings - it can't work out what 'B' is, because the @ISA isn't visible anymore - it's inside the Safe compartment.

If you add a sub DESTROY to package B (inside or outside) then the problem goes away.

Have fun,