$ perl -E ' use strict; use warnings; for $i (1,2,3) { say $i; } my $i; say $i // "undefined"; ' Global symbol "$i" requires explicit package name (did you forget to declare "my $i"?) at -e line 5. Global symbol "$i" requires explicit package name (did you forget to declare "my $i"?) at -e line 6. Execution of -e aborted due to compilation errors.