Another way to look at it would be that $foo_text
is being re-declared every iteration. The declaration is scoped within the while
loop. Yes, it is a statement modifier, but it's also a looping construct with its own scope. For example:
my $x = 0;
my $y = $x + 3;
print "$x => $y\n";
} while ($x < 10);
A little explanation - do
(essentially) says to treat the following block as a single statement. Thus, you can use statement modifiers like post-whiles and post-foreachs. Now, $y is very obviously scoped within the confines of the while
-loop. It's the same concept for while-modifiers.
We are the carpenters and bricklayers of the Information Age.
Don't go borrowing trouble. For programmers, this means Worry only about what you need to implement.