The module MooseX::HasDefaults::RO defaults is to ro. The module MooseX::HasDefaults::RW defaults is to rw. If you pass a specific value to any has's is, that overrides the default. If you do not want an accessor, pass is => undef.