Ditto with all the rest of the replies, except... some strange behaviour.
in reply to Less-than-helpful warnings
Note that if your undefined variable is 1st in the string, no warning message.
The second print statement does not print a warning.
My guess is that it is the concatenation of a 'null' that causes the warning.
my $a = 1;
my $b = 2;
my $c = 3;
my $d = 4;
print "$a $b $c $d $e\n";
print "$e $a $b $c $d\n";
"$a $b" is optimized to $a." ".$b according to the message I get when I use the 'use diagnostics' with this code.