$ perl -E ' my @answers = qw{x y z}; say "Total: ", scalar(@answers); say "Total: ", 0+@answers; say "Total: @{[scalar @answers]}"; say "Total: @{[0+@answers]}"; ' Total: 3 Total: 3 Total: 3 Total: 3 #### $ perl -E ' #use strict; use warnings; { my $i; for $i (1,2,3) { say $i; } say $i // "undefined"; } { for my $i (1,2,3) { say $i; } say $i // "undefined"; } { for $i (1,2,3) { say $i; } say $i // "undefined"; } { my $i = q{completely different $i}; for $i (1,2,3) { say $i; } say $i // "undefined"; } ' 1 2 3 undefined 1 2 3 undefined 1 2 3 undefined 1 2 3 completely different $i #### $ perl -E ' use strict; use warnings; for my $i (1,2,3) { say $i; } say $i // "undefined"; ' Global symbol "$i" requires explicit package name (did you forget to declare "my $i"?) at -e line 9. Execution of -e aborted due to compilation errors. #### $ perl -E ' use strict; use warnings; for $i (1,2,3) { say $i; } ' 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. #### $ perl -E ' use strict; use warnings; my $i; for $i (1,2,3) { say $i; } say $i // "undefined"; ' 1 2 3 undefined #### $ 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. #### chomp $line; print $line, "\n"; #### print $line;