On Jun 14, Bart Lateur said:

>On Fri, 14 Jun 2002 00:21:16 -0400, Michael G Schwern wrote:
>
>>The history is someone noticed that since this:
>>
>>      my $foo;  $foo = $foo . 42
>>      Use of uninitialized value at -e line 1.
>>
>>and this:
>>
>>      my $foo;  $foo .= 42
>>
>>are logically the same, the former shouldn't warn. 
>
>Perhaps... (I feel like disagreeing, though.)
>
>Anyway:
>
>       my($foo, $bar);  $foo = $bar . 42;
>
>*should* warn. Only in the exceptional case where the lvalue on the left
>is identical to the lvalue first thing on the right, the warning might
>be dropped. Well: it doesn't warn. That makes no sense at all, either
>'.' should warn (pretty much) always, or never.
>
>And that's where my disagreement kicks in. The rules used to be much
>simpler: '.' warns, '.=' doesn't. I feel that rule make much more sense,
>"logically the same" or not. If you don't want the warning, use '.='.

Yeah, if we start allowing undef values when they're being used for
concatenation, we'll stop being warned when we might want to be. :(

-- 
Jeff "japhy" Pinyan      [EMAIL PROTECTED]      http://www.pobox.com/~japhy/
RPI Acacia brother #734   http://www.perlmonks.org/   http://www.cpan.org/
** Look for "Regular Expressions in Perl" published by Manning, in 2002 **
<stu> what does y/// stand for?  <tenderpuss> why, yansliterate of course.
[  I'm looking for programming work.  If you like my work, let me know.  ]

Reply via email to