sub foo { my $self = shift; @_ ? ($self->{foo} = shift) : $self->{foo}; }