http://www.perlmonks.org?node_id=440369


in reply to Foreach Loops

Other monks have given you some good answers to your question above, but I wanted to point out an error in your code in case it wasn't a typo. In your C-ish style loop:

for (my $x = 0; $x < $#arr; $x++) {} # ^^^^^^^
the condition you're using will prevent the loop from running for the final array element, because you only enter the loop when the counter is strictly less than the last index of the array. To correct it, simply change to one of these:
for (my $x = 0; $x <= $#arr; $x++) {} # ^^ # up to *and including* the last index for (my $x = 0; $x < @arr; $x++) {} # ^ # when used in scalar context, '@arr' returns the number of # elements in @arr