Thank you all for your comments. I think I should clarify that I probably didn't mean that none of strict, warnings, logging etc. should be used in production. But I do think that many people have
different configurations for dev versus production.
I can only really speak for myself, so in my case, in production, I use strict, but no warnings or diagnostics (e.g. in libraries). I set logging (
Log::Log4perl) to 'warn' rather than 'info' or 'debug'. For cgi programming, I like to have fatals go to the browser when debugging, but not when the site is in production. The idea was that you could switch easily between such different configurations.
I like the suggestion of using environment variables to specify what these configurations are, thanks.