in reply to Supressing warnings

I noticed that the deprecated warning is generated even when warnings are not in effect! This leads me to believe that this category of warning messages is not controlled by the usual means (-w, use warnings, etc.). Consider:
$ perl -e 'sub pdu:locked:method { return 'pdu'} print pdu(), $/' Use of :locked is deprecated at -e line 1. 5 $ perl -e 'my @array; if (defined @array) { print 6 }' defined(@array) is deprecated at -e line 1. (Maybe you should just omit the defined()?)

A little more digging leads me to perl5120delta, in its "Potentially Incompatible Changes" section: Deprecations warn by default

Perl now defaults to issuing a warning if a deprecated language feature is used.

The doc mentions a way to lexically disable the warning (as you have already tried), but there is no mention of a way to globally disable it.

As you may be aware, there is already a bug report for this on Net::SNMP. The best solution, of course, is to fix the module. Perhaps you could be proactive and upload a patch to fix this. You would then have your own local copy without the warnings until the module author implements the fix.