sub my_iter { for (@_) { yield $_; # upon return, $_ may no longer be localized. if we # modify it, we could be modifying a global value # outside our scope. there's no way to tell, and # that's rather nasty. } }