I'll admit that this is pretty much just a guess. I think it
may have something to do with the fact that the for
construction essentially builds a list from <DATA>,
which it then iterates over, while while pumps
the data items one at a time into $_. I could very well be
very wrong, but I think this may be a place to start looking
for an answer.
in reply to When is $_ local and when is it not?
update: In looking at converter's reply
in the thread, I see that the correct answer is given there.
I wonder if that has something to do with the fact that the
for construction builds a hidden list? Perl_guts
wizards can fill us in, perhaps.