sub foo { my $self = shift; if (@_) { # mutator $self->{foo} = shift; } else { # accessor return $self->{foo}; } }