"The sky was rainy, the wind blew strongly and my bag was heavy.
I left it back there, and with only a Coat, went I out happily."


This module was inspired by the excellent Moose meta class which provides enhanced object creation for Perl5.

Moose is great, but has huge dependencies which makes it difficult to use in restricted environments.

This module implements the basic goodness of Moose, namely accessors automagic, hook modifiers and inheritance facilities.

It is not Moose but the small bunch of features provided are Moose-compatible. That means you can start with Coat and, if later you get to the point where you can or want to upgrade to Moose, your code won't have to change : every features provided by Coat exist in the Moose's API.

You can consider Coat as an attempt to provide a self-dependent, Mini-Moose module.


Coat is self-dependent, it's written in pure Perl5 and will remain that way.


Development snapshots are released on CPAN. Check Coat's CPAN page

Coat source tree is handled with SVN and is hosted in Moose's repo. You can grab the source with the following command line:

svn co
You can also browse the source tree with your web browser here


Coat is released under the same terms as Perl tiself (either Artistic license or GPL v2).


Coat was written by Alexis Sukrieh.

Helpful reviews were provided by Matt S Trout and Stevan Little, huge thank to them.