in reply to Complaints from Warnings about uninitialized var
If you do not want to modify the value of $middle (so you leave it as undef, and not an empty string), you may want to use printf:
printf "last:(%s) first(%s) middle(%s)\n", $last || '', $first || '', $middle || '';
or if you've got a whole lot to deal with
printf "some format string goes here", map { defined($_) ? $_ : '' } (@list_of_variables);
Or, there's always:
{ no warnings 'uninitialized'; print "whatever"; }
|
|---|