package Simple; use constant REQFIELDS => qw(a b); use Class::MethodMaker get_set => [REQFIELDS, qw(c d)], new_with_init => 'new', new_hash_init => 'hash_init'; sub init { my $self = shift; my %values = (@_); foreach (REQFIELDS) { die "$_ doesn't exist" unless exists($values{$_}); } $self->hash_init(%values); return; } 1;