Do you know if this is a well defined feature?
We've already convered this. It's documented to be undefined behaviour.
Can't see why undefining a var with minimized ref-counter should be restricted to a previous my-init !(?)
But you're ok with conditionally declaring variables?
Anyway, there are tWo problems with what yousaid:
- The variables are cleared, not undefined. The string buffer is reused too.
- It has nothing to do with the assignment ("init"). my $var if 0; would be just as problematic.
In order to reuse the variable, the function needs a reference to it (so it can find it) and the refcount needs to stay above zero (in order for it to be around to be reused). That means the refcounting mechanism won't help us here.
I don't know why they tied it to the execution of my rather than the compilation of my, but it might have to do with saving opcodes. Or simplfying the compiler. Or maybe it would make subroutine reentry too complicated to do otherwise.
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.