Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

Re: Now you see it, now you don't

by blakem (Monsignor)
on May 29, 2003 at 21:07 UTC ( #261693=note: print w/ replies, xml ) Need Help??


in reply to Now you see it, now you don't

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...
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!
As written, it might also mess up the method lookup cache that perl uses to determine which methods are overridden and which aren't.

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


Comment on Re: Now you see it, now you don't
Select or Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://261693]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (10)
As of 2015-07-30 21:21 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (273 votes), past polls