$self->sis->add_event("event name"); $self->sis->log_event("message"); $self->sis->uuid(); sub sis { return Company::Dept->new($dbh, $uname); } #### sub sis { my ($self) = @_; # check whether the internal representation is already defined if ( !$self->{_sis} ) { # call the constructor and save the result my ($dbh, $uname) = get_constructor_args_from_somewhere(); $self->{_sis} = Company::Dept->new($dbh, $name); } return $self->{_sis}; }