Ok, so I have a bin script and like so many other's use some common
options such as --verbose and --debug. Generally I have been keeping
these flags in an options hash, specific to my app. But I wondering if
perhaps these may just as well use the global vars. Is that a good
practice, or are these globals specifically for something more
specialized for use by developers and should not be used by
applications?

If these globals are generally useful to applications, I note that a
$NOOP global for FileUtils methods seems useful.