When a LHS element of a list assignment is immortal, Perl pretends the RHS element is on the LHS for the purpose of building the return value. $ perl -wle'$x="xx";$y="yy"; $_=uc for ($y)=$x; print "$x$y"' xxXX $ perl -wle'$x="xx";$y="yy"; $_=uc for (undef)=$x; print "$x$y"' XXyy It's probably not worth the effort of fixing it, so I'm just posting it as a "FYI". By the way, the trick of using undef on the right-hand side of a list assignment is not mentioned in perlop. - Eric "ikegami" Brine