This is the frying pan: $ perl -we 'print "a=$a\n";' Use of uninitialized value at -e line 1. a= This is the fire: $ perl -we '$a ||= ""; print "a=$a\n";' a= Why? Because! $perl -e '$a="0"; $a ||= ""; print "a=$a\n";' a= Moral of the story: When trying to avoid -w(arnings) against uninitialized variables you cannot simply insert $v ||= ''; statements. Regards, -Wolfgang