NAME
    MooseX::StrictConstructor - Make your object constructors blow up on
    unknown attributes

SYNOPSIS
        package My::Class;

        use Moose;
        use MooseX::StrictConstructor;

        has 'size' => ...;

        # then later ...

        # this blows up because color is not a known attribute
        My::Class->new( size => 5, color => 'blue' );

DESCRIPTION
    Simply loading this module makes your constructors "strict". If your
    constructor is called with an attribute init argument that your class
    does not declare, then it calls "Carp::confess()". This is a great way
    to catch small typos.

  Subverting Strictness
    You may find yourself wanting to have your constructor accept a
    parameter which does not correspond to an attribute.

    In that case, you'll probably also be writing a "BUILD()" or
    "BUILDARGS()" method to deal with that parameter. In a "BUILDARGS()"
    method, you can simply make sure that this parameter is not included in
    the hash reference you return. Otherwise, in a "BUILD()" method, you can
    delete it from the hash reference of parameters.

      sub BUILD {
          my $self   = shift;
          my $params = shift;

          if ( delete $params->{do_something} ) {
              ...
          }
      }

AUTHOR
    Dave Rolsky, "<autarch@urth.org>"

BUGS
    Please report any bugs or feature requests to
    "bug-moosex-strictconstructor@rt.cpan.org", or through the web interface
    at <http://rt.cpan.org>. I will be notified, and then you'll
    automatically be notified of progress on your bug as I make changes.

COPYRIGHT & LICENSE
    Copyright 2007-2008 Dave Rolsky, All Rights Reserved.

    This program is free software; you can redistribute it and/or modify it
    under the same terms as Perl itself.

