#do{$data = $data . $_ } while (); #gives a uninitialized value in concatenation #### my $data; while () { $data .= $_ } #### $ perl -we 'my $foo; $foo = $foo . "foo"' # no warning #### $ perl -we 'my $foo; my $bar = $foo . "foo"' Use of uninitialized value $foo in concatenation (.) or string at -e line 1.