If you really do want to change a hidden value, make the changes in a scope that has warnings turned off: { local $^W = 0; $agent->field( name => $value ); }