<?xml version="1.0" encoding="windows-1252"?>
<node id="388312" title="Re^2: split and uninitialized variables" created="2004-09-03 11:33:23" updated="2005-06-05 21:59:06">
<type id="11">
note</type>
<author id="227499">
antirice</author>
<data>
<field name="doctext">
&lt;p&gt;Both methods have problems:&lt;/p&gt;
&lt;code&gt;
&gt; perl -wl
my ($x,$y,$z) = ('','','');
($x,$y,$z) = split(',','a,b');
print "$x $y $z";
__END__
Use of uninitialized value in concatenation (.) or string at - line 3.
a b

&gt; perl -wl
my ($x, $y, $z) = map { $_ || '' } split(',', 'a,0,b');
print "$x $y $z";
__END__
a  b
&lt;/code&gt;
&lt;p&gt;The second one is easily fixed with:&lt;/p&gt;
&lt;code&gt;
perl -wl
my ($x, $y, $z) = map defined $_ ? $_ : '', (split(',', 'a,0,b'))[0..2];
print "$x $y $z";
__END__
a 0 b
&lt;/code&gt;
&lt;p&gt;Update: Doh! Thanks [!1] (silly lurker).&lt;/p&gt;
&lt;!-- Node text goes above. Div tags should contain sig only --&gt;
&lt;div class="pmsig"&gt;&lt;div class="pmsig-227499"&gt;
&lt;p align="right"&gt;[antirice] &amp;nbsp; &amp;nbsp; &lt;br&gt;&lt;i&gt;The first rule of Perl club is - use Perl&lt;br&gt;The &lt;/i&gt;i&lt;i&gt;th rule of Perl club is - follow rule &lt;/i&gt;i&lt;i&gt; - 1 for &lt;/i&gt;i&lt;i&gt; &amp;gt;  1&lt;/i&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;</field>
<field name="root_node">
388295</field>
<field name="parent_node">
388301</field>
</data>
</node>
