in reply to Object not created as well with Moose
Wouldn't it make more sense to use default and/or lazy?
That way you won't need _init().has 'CONFIG' => ( is => 'rw', isa => 'Object', lazy => 1, default => sub { Package::System::Config->new }, );
It would probably be even better to make a subtype for the Config object.
In Section
Seekers of Perl Wisdom