
So you know how global variables are evil and should be never used? Yeah, well I've discovered something that's maybe worse, and I call them semi-global variables. They occur in nasty languages that allow nested functions, like Pascal. In the nasty language, a nested function has visibility to all of the variables and arguments of it's containing functions. Yeah. So you have no idea what the scope of these things is, and what sort of side affects they cause, and how far they ripple out. Nested functions are a bad, bad idea.