in reply to loop surprise

My keyword is for local scoping of a variable. It says $i is a local variable, but it is global to the parent class. $i you have used in for loop is local to for loop and it does not assign any value to it. You are iterating the loop for from 1 to 10 and it assign the value to a temporary variable in your case it is just $i. Below is an example how iterations works in a loop

for(1..10) { print "yes" if(/7/); }

in the above examples $_ is used a temporary variable and it gets null when it is out of for Loop. I hope it make you clear how Variables work in loop