Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
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 making s'mores by the fire in the courtyard of the Monastery: (7)
As of 2014-12-19 23:51 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (94 votes), past polls