in reply to Mysterious append failure.

Because you're declaring a variable in a loop and it falls out of scope outside of the loop e.g
perl -we "my $a = q[foo] for 1; print $a" Use of uninitialized value in print at -e line 1.
It's statement modifier abuse essentially.
HTH

_________
broquaint