my $accessors = { map ({$_=>{TYPE=>'getter',CODE=>undef}} qw |my getter names| ), map ({$_=>{TYPE=>'setter',CODE=>undef}} qw |setter names2|) }; #### for (keys %$accessors){ if ($accessor->{$_}{TYPE} eq 'getter'){ $accessor->{$_}->{CODE} = sub {set code}; }else{ .. setter ... }