package My::Class; use base 'Class::Accessor'; __PACKAGE__->mk_accessors( qw( foo bar baz )); sub new { my ($package,%args) = @_; my $self = { # Set some defaults foo => 'The foo', bar => 'The bar', baz => 'The baz', %args }; bless $self, $package; $self; };