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 '.='. -- Bart.