good chemistry is complicated, and a little bit messy -LW |
|
PerlMonks |
Global destruction feature / bug ?by liz (Monsignor) |
on Apr 03, 2008 at 13:44 UTC ( [id://678159]=perlquestion: print w/replies, xml ) | Need Help?? |
liz has asked for the wisdom of the Perl Monks concerning the following question:
This little program produces a result that was at least unexpected by me and a few other Amsterdam Perl Mongers:
produces: What I expected was: In other words, any objects tied to file lexicals would be destroyed at global destruction *after* the execution of the END block. But apparently, they are destroyed *before* the END block executes. This seems at least the case with 5.8.1, 5.8.5, 5.8.8. and 5.10.0. Is this behaviour documented anywhere? If not, where would be a good place to document this (as it cost me a few days wallclock to figure this one out and many people that I've asked their expectation about this piece of code, have given the wrong answer). The reason I'm asking, is that I'm working on some leak detection utility. In this code example, I would consider both $foo as well as $bar as having leaked, as they were not reclaimed before the program ended. Having $foo being DESTROYed *before* the END block executes, just makes things so much more complicated... ;-( Suggestions? Comments? Liz
Back to
Seekers of Perl Wisdom
|
|