package Simple; use Class::MethodMaker get_set => [ qw/ a b / ], new_with_init => 'new'; sub init { my ($class, %args) = @_; my %default = ( 'b' => 'default' ); %args = (%args, %default); bless \%args, $class; } #### use Carp; %args = (%args, %default); foreach (keys %args) { carp( 'Unknown argument to init subroutine - ', $_ ) unless exists $default{$_}; } bless \%args, $class;