<snip> > Alternately, you could say: > > $track ||= ''; > > right before the next time you use foo after the split. I dont know why this > works offhand, I just remember reading in the docs somewhere that its exempt > from warnings. But for me, that is crossing over into the land of ugly =0). </snip>
$track ||= ''; is equivalent to $track = $track || ''; which is equivalent to if ($track) { $track = $track; } else { $track = ''; } Since undef is false $track gets set to ''. If $track had held something that was not false it would stay the same. N.B. this trick is dangerous WRT zero. Zero is false which means it will get replaced with '' in the code above. In Perl 6 we will have a new operator called "//" that will check whether or not an expression is defined (as opposed to true). -- Today is Setting Orange the 19th day of Confusion in the YOLD 3168 Or is it? Missile Address: 33:48:3.521N 84:23:34.786W -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]