As anybody would agree with: global variables are bad.
You mean like STDERR, @ARGV, %SIG?
SCNR
Sorry for any bad spelling, broken formatting and missing code examples. During a slight disagreement with my bicycle (which i lost), i broke my left forearm near the elbow. I'm doing the best i can here...
I waited for that. :-)
The interesting aspect of these variables is: They are just there. Everyone expects them to be there. Regularly they are part of the runtime environment everywhere. So IMO they could be interpreted as a service which is always accessible.
How is this different to a global variable which you introduce as a part of your own "runtime environment"?