for my $name (keys %{$accessors}){ my $accessor; if( $accessors->{$name} eq "setter" ){ $accessor = sub { ... }; } else { $accessor = sub { ... }; } no strict 'refs'; *$name = $accessor; }