<?xml version="1.0" encoding="windows-1252"?>
<node id="744240" title="Re^2: &quot;defined&quot; in while loop Edit | Delete | Quote | Reply | Private Reply" created="2009-02-16 18:47:44" updated="2009-02-16 18:47:44">
<type id="11">
note</type>
<author id="381608">
ikegami</author>
<data>
<field name="doctext">
&lt;blockquote&gt;&lt;p&gt;&lt;i&gt;Also, it isn't necessary for $_ to be undefined (or unassigned) for the loop to end. &lt;/i&gt;&lt;/blockquote&gt;

&lt;p&gt;While that's true in general,

&lt;c&gt;
&gt;perl -le"$_=4; while (--$_) { print }"
3
2
1
&lt;/c&gt;

&lt;p&gt;It's not true in this case.

&lt;c&gt;
&gt;perl -e"print 0" | perl -le"while ($_ = &lt;&gt;) { print $_ ? 'true' : 'false' }"
false

&gt;perl -MO=Deparse -e"while (&lt;&gt;) {}"
while (defined($_ = &lt;ARGV&gt;)) {
    ();
}
-e syntax OK

&gt;perl -MO=Deparse -e"while ($_ = &lt;&gt;) {}"
while (defined($_ = &lt;ARGV&gt;)) {
    ();
}
-e syntax OK

&gt;perl -MO=Deparse -e"while (defined($_ = &lt;&gt;)) {}"
while (defined($_ = &lt;ARGV&gt;)) {
    ();
}
-e syntax OK
&lt;/c&gt;
</field>
<field name="root_node">
744123</field>
<field name="parent_node">
744237</field>
</data>
</node>
