sub name { my ($self, $value) = @_; if (defined $value) { # if a value is given $self->{name} = $value; # set the value return $self; # return the original object } return $self->{name}; # else return the name }