sub new_object { my ($self,$data) = @_; return Object->new( config=>$self, data=>$data ); } # ... call as: my $obj3 = $config->new_object( { quz=>789 } );