foreach my $field (@required_fields) { no strict 'refs'; chomp $field; *$field = sub { my $self = shift; if ($_[0]) { $self->{$field} = $_[0]; } else { $self->{$field); } }; }