It is hard to say on this one. I personally have used both practices, though I tend to avoid referring to something outside of a sub-routine that was not passed in. Let's say that I'm going to write a very short script that's about a page of text; I will refer to a
global from a sub in that case. Anything over a page long needs rigor. If someone else might have to modify it, all bets are off: no global refs.