Well, you got me there. Shouldn't answer nodes right after rolling out of bed.
Yes from a language design standpoint, Perl is full of side effects. I'm talking about the expectations of people using Perl. Yes, it's a well know trap and easy to avoid.
But it's non-intuitive and dare I say non-sensical.
I'd be hard pressed to think of any situation were someone would want their loop iterations influenced transparently by code outside the current scope. Certainly that's what most people don't want the majority of the time. It doesn't follow expectation.