my $buf; # leave value as undefined so use before a real value is available will result in a warning message. ...; while (<$input>) { ...; $buf .= $newletter; # not an error because appending to an undef value is treated the same as appending to an empty string }