The OP points out that there's no real difference between for $lex (...) and for my $lex (...). The "my" is just useless noise. As such, the declaration could be implicit.
It's reasonable, but it's not true because foreach loops don't just work with lexicals.