$ cat unexpected.pl #!env perl use strict; use warnings; my $S4; sub X { print "<$S4>\n"; return $S4; } for $S4 (1 .. 2) { print "A: <$S4> <", X(), ">\n"; } $ perl unexpected.pl Use of uninitialized value $S4 in concatenation (.) or string at unexpected.pl line 8. <> Use of uninitialized value in print at unexpected.pl line 13. A: <1> <> Use of uninitialized value $S4 in concatenation (.) or string at unexpected.pl line 8. <> Use of uninitialized value in print at unexpected.pl line 13. A: <2> <>