- my $field_method = $meta->find_method_by_name('_set_'.$field);
- if (not defined $field_method) {
- croak "Unable to find field method for _set_$field";
- }
- $field_method->($self,$args->{status}{$field});
+ if (not exists $field_methods{'_set_'.$field}) {
+ $field_methods{'_set_'.$field} =
+ $meta->find_method_by_name('_set_'.$field);
+ if (not defined $field_methods{'_set_'.$field}) {
+ croak "Unable to find field method for _set_$field";
+ }
+ }
+ $field_methods{'_set_'.$field}->($self,$args->{status}{$field});