This module provides a more general version of the Str type. If
coercions are enabled, it will accepts objects that overload
stringification and coerces them into strings.
A structured type constraint is a standard container Moose type
constraint, such as an ArrayRef or HashRef, which has been enhanced to
allow you to explicitly name all the allowed type constraints inside the
structure. The generalized form is:
TypeConstraint[@TypeParameters or %TypeParameters]
Where 'TypeParameters' is an array reference or hash references of
Moose::Meta::TypeConstraint objects.
This type library enables structured type constraints. It is built on
top of the MooseX::Types library system, so you should review the
documentation for that if you are not familiar with it.
MooseX::Types::URI provides Moose types for fun with URIs.
It has slightly DWIMier types than the URI classes have due to implementation
details, so the types should be more forgiving when ducktyping will work anyway
(e.g. URI::WithBase does not inherit URI).
MooseX::Types::VariantTable implements a simple dispatch table based on
Moose type constraints.
Subtypes will be checked before their parents, meaning that the order of
the declaration does not matter.
The types provided with Moose are by design global. This package helps you to
organise and selectively import your own and the built-in types in libraries.
As a nice side effect, it catches typos at compile-time too.
However, the main reason for this module is to provide an easy way to not have
conflicts with your type names, since the internal fully qualified names of the
types will be prefixed with the library's name.
This module will also provide you with some helper functions to make it easier
to use Moose types in your code.
MouseX::App::Cmd marries App::Cmd with MouseX::Getopt. It is a direct port of
MooseX::App::Cmd to Mouse.
Use it like App::Cmd advises (especially see App::Cmd::Tutorial), swapping
App::Cmd::Command for MouseX::App::Cmd::Command.
Then you can write your Mouse commands as Mouse classes, with MouseX::Getopt
defining the options for you instead of opt_spec returning a
Getopt::Long::Descriptive spec.
Extend your attribute interfaces
This is an abstract role which provides an alternate constructor
for creating objects using parameters passed in from a configuration file.
The actual implementation of reading the configuration file is
left to concrete subroles.
MouseX::Foreign provides an ability for Mouse classes to extend any classes,
including non-Mouse classes, including Moose classes.
This is a role which provides an alternate constructor for creating
objects using parameters passed in from the command line.