It might be easier... but it is shorter.
Btw. In my 'solution' above I made a mistake that I just found as I was porting the script from my IDE (Komodo) to the server.
The undefined constant (debugging turned off) throws warnings about void constants. To get around this I used the following short fix:
# set DEBUGGING to the debug_switch value
use constant DEBUGGING => $debug_switch || 0;
Now to answer some questions...
Q: 'Why did I opt for the long version?'
A: It is clear and maintainable, even by persons with a minimum perl knowledge. I do this just to be nice to the people who have to live with my code.
Q: 'Why not use more than one level of debugging messages?'
A: I didn't need more than one. And knowing the application I doubt very much that this will change.
But... if I ever in need to use more than on level of debugging I will sure come back to this thread and look at the offered solutions for this feature.
thx /oliver