in reply to (bbfu) Re: (tye)Re: Tied %SIG
in thread Tied %SIG
When you tie a hash, attempts to change the hash no longer change the hash, they call a STORE method instead. So I have no reason to believe that your current method should manage to change the underlying, magical %SIG since it all boils down to $SIG{sig}= $codeRef generating a call to STORE that simply returns, doing nothing. In the case of $SIG{ALRM}, you call this STORE method twice, generating the second call to it from within the first call.
I suspect you have a found a bug in tied variables such that changes to the underlying tied hash leak through when you trigger a second STORE this way (or something similar). This bug probably has other, less desireable effects (like a recent bug where you can't use a different tied variable inside of a STORE method) and so may be fixed and the fix may break your ugly hack.
If you want to be able to change the original %SIG (in order to invoke the magic), then I really think you need to take steps such that you aren't tieing the original %SIG as changing a hash after it is tied isn't supported. You are relying on undocumented behavior.
What I suggested relies on documented behaviors. But it is fringe enough that I don't expect the standard test suites and beta testing would always turn up bugs that happen to break the combined behavior.
- tye (but my friends call me "Tye")
|
---|
Replies are listed 'Best First'. | |
---|---|
(bbfu) Re: (tye)Re2: Tied %SIG
by bbfu (Curate) on May 01, 2001 at 01:50 UTC | |
by tye (Sage) on May 01, 2001 at 01:58 UTC | |
by bbfu (Curate) on May 01, 2001 at 02:06 UTC |