$ perl -E ' use warnings; for my $f ("a" .. "b") { my $max = $f; for my $i (1 .. $max) { say "\$f[$f] \$i[$i]"; } } ' Argument "a" isn't numeric in foreach loop entry at -e line 7. Argument "b" isn't numeric in foreach loop entry at -e line 7.