in reply to Namespace woes

I ran into a similar problem once. I inherited a script which generated this warning for much the same reason that yours does. I found the offending variable in a line like this:
NO_WARNING( $variable );
And I found an evil line elsewhere that said:
sub NO_WARNING{}
Well, when I went searching for the source of this problem I found out that this had been implemented to avoid the typo warning, but then someone noticed that the constant wasn't being used and deleted it. This left only the sad attempt to silence the warning. Bad, very bad.

My recommendation is to declare constants as subroutines. This not only avoids the warnings but makes the variable immutable.

sub Constant(){2}
Makes Constant alway return 2. Also, you can place these in a .pm perl module and import them that way so that you don't clutter your namespace.