>perl -wMstrict -le "my $x; sub Sbr { $x = 1 + scalar @_; return } sub Sel { $x = 1 + scalar @_; return () } my ($s, @ra); $s = Sbr(); print 'scalar bare return ', defined $s ? '' : 'UN', 'defined'; print qq{scalar context bare return: '$s'}; $s = Sel(); print 'scalar empty list ', defined $s ? '' : 'UN', 'defined'; print qq{scalar context empty list: '$s'}; @ra = Sbr(); print qq{list context bare return: (@ra)}; @ra = Sel(); print qq{list context empty list: (@ra)}; " scalar bare return UNdefined Use of uninitialized value in concatenation (.) or string at ... scalar context bare return: '' scalar empty list UNdefined Use of uninitialized value in concatenation (.) or string at ... scalar context empty list: '' list context bare return: () list context empty list: ()