in reply to Assign in loop with and without declaration

imho, it creates it's own scope level that includes the LHS of the assignment:

... { my $j; $j = $_ for (1 ..3) } ...

Regards

mwa