No expert has "forgotten" about global variables. No expert is "completely barring their use". If you are "indoctrinated with the idea that global variables are evil" that is your personal problem. Of course they are a "tool in our arsenal".
We tell beginners not to use them because they cannot determine when it's appropriate and they tend to use them as a crutch to avoid passing variables. They even sometimes declare what should be local variables as globals (the global i index variable is the most idiotic).
Global program parameters set from the command line are very useful. You can hide them in a struct to vastly lessen the chance that they are accidentally altered or shadowed.
Code:
struct Params {
...
} params;