package Ex::Parent; use strict; use warnings; sub new { my $class = shift; # This line lets subclass-created objects work: $class = ref($class) || $class; return bless { }, $class; } sub getColor { my $self = shift; return $self->{color} // undef; } sub setColor { my $self = shift; $self->{color} = shift or return 0; return 1; } 1;