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;
do {
my $y = $x + 3;
print "$x => $y\n";
$x++;
} 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.