.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.29)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings.  \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
.    ds -- \(*W-
.    ds PI pi
.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
.    ds L" ""
.    ds R" ""
.    ds C` ""
.    ds C' ""
'br\}
.el\{\
.    ds -- \|\(em\|
.    ds PI \(*p
.    ds L" ``
.    ds R" ''
.    ds C`
.    ds C'
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD.  Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.\"
.\" Avoid warning from groff about undefined register 'F'.
.de IX
..
.nr rF 0
.if \n(.g .if rF .nr rF 1
.if (\n(rF:(\n(.g==0)) \{
.    if \nF \{
.        de IX
.        tm Index:\\$1\t\\n%\t"\\$2"
..
.        if !\nF==2 \{
.            nr % 0
.            nr F 2
.        \}
.    \}
.\}
.rr rF
.\" ========================================================================
.\"
.IX Title "ReadMe 3"
.TH ReadMe 3 "2014-09-04" "perl v5.22.0" "User Contributed Perl Documentation"
.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "Name"
.IX Header "Name"
Mo \- Micro Objects. Mo is less.
.SH "Synopsis"
.IX Header "Synopsis"
.Vb 3
\&    package Less;
\&    use Mo;
\&    extends \*(AqNothing\*(Aq;
\&
\&    has something => ();
.Ve
.SH "Description"
.IX Header "Description"
use Mo. Mo is less. Much less.
.PP
Moose is huge. Moose led to Mouse led to Moo led to Mo. M is nothing. Mo is
more. Not much.
.PP
When Moo is more than you need, drop an 'o' and get some Mo.
.PP
To get just a little Mo from Mo, use \*(L"Mo Features\*(R" below.
.SH "Core Features"
.IX Header "Core Features"
This is what you get. Nothing Mo.
.ie n .IP """new"" method" 4
.el .IP "\f(CWnew\fR method" 4
.IX Item "new method"
Mo provides a \f(CW\*(C`new\*(C'\fR object constructor. You pass it a list of name/value
pairs and it returns a new object.
.Sp
Constructor will not call \s-1BUILD\s0 methods. This is available using the
Mo::build feature.
.ie n .IP """extends""" 4
.el .IP "\f(CWextends\fR" 4
.IX Item "extends"
Mo exports the \f(CW\*(C`extends\*(C'\fR keyword, to declare your parent class. \f(CW\*(C`Mo::Object\*(C'\fR
itself is your default parent class.
.Sp
Mo only supports single inheritance. If you need multiple inheritance or
roles, you should upgrade to Moo.
.ie n .IP """has""" 4
.el .IP "\f(CWhas\fR" 4
.IX Item "has"
Mo exports a \f(CW\*(C`has\*(C'\fR keyword, to generate accessors.
.Sp
These accessors always support both \f(CW\*(C`get\*(C'\fR and \f(CW\*(C`set\*(C'\fR operations. That's it.
.Sp
.Vb 2
\&    has name => ();
\&    has thing => (foo => \*(Aqbar\*(Aq);  # arguments silently ignored
.Ve
.Sp
All arguments passed to \f(CW\*(C`has\*(C'\fR are ignored. This makes it easier to switch
between Mo and Moo, without having to change all your accessors.
.ie n .IP """strict"" and ""warnings""" 4
.el .IP "\f(CWstrict\fR and \f(CWwarnings\fR" 4
.IX Item "strict and warnings"
Mo turns on \f(CW\*(C`use strict\*(C'\fR and \f(CW\*(C`use warnings\*(C'\fR for you.
.IP "Embeddable" 4
.IX Item "Embeddable"
Mo is tiny. It is compressed into a single line. You can easily inline it in
your code, should you want to do that. See Mo::Inline for more information,
including a utility that will do it for you.
.SH "Mo Features"
.IX Header "Mo Features"
Mo is the bare minimum needed for Perl \s-1OO.\s0 Many times you'll want just a
couple more features. Don't worry. Mo's got you covered:
.PP
.Vb 10
\&    use Mo qw\*(Aqbuild default builder coerce is required\*(Aq;
\&    has name1 => ( default => sub { \*(AqJoe\*(Aq } );
\&    has name2 => ( builder => \*(Aqname_builder\*(Aq );
\&    has name3 => ( coerce => sub {$_[0]} );
\&    has name4 => ( is => \*(Aqro\*(Aq );
\&    has name4 => ( required => 1 );
\&    sub BUILD {
\&        my $self = shift;
\&        ...
\&    }
.Ve
.PP
Mo simply loads the feature classes Mo::build, Mo::default,
Mo::builder, Mo::coerce, Mo::is and Mo::required. 
The first one supports \s-1BUILD\s0 constructing and the other three
add their magics to \f(CW\*(C`has\*(C'\fR. A Mo::Feature module can enhance \f(CW\*(C`new\*(C'\fR,
\&\f(CW\*(C`extends\*(C'\fR and \f(CW\*(C`has\*(C'\fR, and also add new export subs, or remove existing ones.
Features can also be combined for a single accessor.
See Mo::Features for a list of all the features and for an explanation of
the Feature \s-1API..\s0
.SH "See"
.IX Header "See"
Mo::Features
.PP
Mo::Inlining
.PP
Mo::Hacking
.PP
Mo::Design
.SH "Status"
.IX Header "Status"
.SH "Authors"
.IX Header "Authors"
Ingy döt Net <ingy@cpan.org>
.PP
Damien 'dams' Krotkine <dams@cpan.org>
.PP
Matt S. Trout (mst) <mst@shadowcat.co.uk>
.PP
Christian Walde <walde.christian@googlemail.com>
.PP
Alessandro Ranellucci (aar/alexrj) <aar@cpan.org>
.PP
Carlos Lima (priodev) <carlos@cpan.org>
.SH "Copyright and License"
.IX Header "Copyright and License"
Copyright (c) 2011\-2013. Ingy döt Net.
.PP
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
.PP
See http://www.perl.com/perl/misc/Artistic.html
