sub _attr { my $self = shift; my $name = shift; return $self->{"_$name"} unless @_; $self->{"_$name"} = shift; } sub name { shift->_attr(name => @_); }