ok, that works, thanks.
But it leaves me worried that $_ is being used in say() as a global...
...or am I needlessly worried here? All the best practices talk about not using $_ since it's a global, and your suggestion uses $_. So the question is, is that $_ referenced in the say() sub a global from the implicit $_ in the mainline loop, or not...?