They are not exactly equivalent, in that the latter will read into $_, destroying any previous content. You would need to prepend the "local $_;" mantra to make them indistinguishable from calling code's point of view (though their precise behavior will still differ of course).

Anyway, on your question, I seem to recall word being that my-variables used directly in the loop construct (ie while(my $var) and for my $var) are scoped into the loop's block's context, but allocated in the surrounding block's frame. In conjunction with them apparently not being deallocated at the loop's end but rather at the surrounding block's end in older 5.5.x versions of Perl, that would explain why your code "leaks".


In reply to Re: Open, While and memory management by Aristotle
in thread Open, While and memory management by matthew

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • 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:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.