Simply loading the MooseX::StrictConstructor 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. WWW: https://metacpan.org/release/MooseX-StrictConstructor