my @attributes = qw(color speed); # generate the methods foreach my $attribute (@attributes) { my $code = sub { # for a better way, see Tanktalus' post below my ($self, $value) = @_; $self->{$attribute} = $value if defined $value; return $self->{$attribute}; }; no strict 'refs'; *{ $attribute } = $code; } # foreach