undef *$field;Gotta be careful with that because it will blow away more than just the $field method. Say bye-bye to the $field array the $field hash and everything else in the $field stash...
As written, it might also mess up the method lookup cache that perl uses to determine which methods are overridden and which aren't.my $obj = Bar->new() $Bar::faz = 100; print '$Bar::faz = ' . $Bar::faz . "\n"; $obj->destroy_methods(); print '$Bar::faz = ' . $Bar::faz . "\n"; __END__ $Bar::faz = 100 $Bar::faz = Doh!
What you'd really like is a way to localize the subroutine portion of the stash, but Perl doesn't provide a clean way to do that.
Before you go much further down this path, you really should read the highly enlightening discussion at: Undefining subroutines and inheritance
-Blake
In reply to Re: Now you see it, now you don't
by blakem
in thread Now you see it, now you don't
by hardburn
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |