for my $accessor (qw{ foo bar }) { my $method = sub { my($self) = @_; return $self->{$accessor}; }; # inject it as a named subroutine no strict 'refs'; *$accessor = $method; } #### sub foo { my($self) = @_; return $self->{foo}; }