The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

ake::Any::Mo - make Any::Mo

SYNOPSIS

 perl -Make::Any::Mo=Monkey::Mo,path/to/Mo/lib

DESCRIPTION

This module helps you make your own version of Any::Mo, with a name like maybe "Monkey::Mo", or whatever else you like. You'll need to have Mo.pm and its friends (Mo/is.pm, Mo/build.pm, etc) somewhere.

Use it from the command line, as shown in the synopsis. After the equals sign, ake::Any::Mo expects a comma-delimited list of arguments. In order, these are:

  • the name of the module to create. (Default: "My::Any::Mo".)

  • the path where Mo.pm can be found. (Default: performs "require Mo" to figure it out.)

  • a URI identifying the authority making the module. Pseudo-URIs along the lines of 'cpan:TOBYINK' are often used. (Default: as per $ake::Any::Mo::AUTHORITY.)

  • a version number for the module. (Default: as per $ake::Any::Mo::VERSION.)

Any remaining arguments are a list of Mo plugins to include.

MOTIVATION

Mo is a nice, dependency-free Moose-lite. If you use Mo then you're introducing exactly one dependency: Mo itself. (Though Mo comes with a mo-inline script to remove this dependency.)

Any::Mo gives you Moose if Moose is already loaded, but falls back to Mo. Any::Mo actually bundles a version of Mo, so if you use Any::Mo, you are still only introducing one non-core dependency: Any::Mo itself.

But wouldn't it be nice to have the power of Any::Mo without introducing a dependency on Any::Mo? Well, you can - you can use ake::Any::Mo to create a custom version of Any::Mo (which of course includes a version of Mo), then bundle your custom Any::Mo with your code.