We know about accessors
Yes, but do you use them?
for your fields?
Accessors are tedious to write
sub color { my($self, $value) = shift; $self->{color} = $value if defined $value; return $self->{color}; }
continued...