If you are certain that a warning is spurious, you can disable it locally using
no warnings;. It is generally considered good form to disable warnings in as small a scope as possible and to only disable the known spurious warning. In this case, the warning is
once (see
Category Hierarchy in
perllexwarn), so you could use the code:
no warnings "once";
my %q= %SQL_Wrapper::q;
use warnings;
or you could use a do, which is what I usually use in this sort of scenario
my %q= do{
no warnings "once";
%SQL_Wrapper::q;
};