my $string .= 'appended stuff' if ($conditional1); #### my $string = $string . 'appended stuff' if ($conditional1); #which is basically (or is it not and that's the problem?): my $string = undef . 'appended stuff' if ($conditional1); #### my $conditional1 = 0; my $string = 'blah' if $conditional1; # $string is undef