MooX::Types::MooseLike - some Moosish types and a type builder
package MyApp::Types; use MooX::Types::MooseLike; use base qw(Exporter); our @EXPORT_OK = (); # Define some types my $defs = [{ name => 'MyType', test => sub { predicate($_[0]) }, message => sub { "$_[0] is not the type we want!" } }, { name => 'VarChar', test => sub { my ($value, $param) = @_; length($value) <= $param; }, message => sub { "$_[0] is too large! It should be less than or equal to $_[1]." } }]; # Make the types available - this adds them to @EXPORT_OK automatically. MooX::Types::MooseLike::register_types($defs, __PACKAGE__); ... # Somewhere in code that uses the type package MyApp::Foo; use Moo; use MyApp::Types qw(MyType VarChar); has attribute => ( is => 'ro', isa => MyType, ); has string => ( is => 'ro', isa => VarChar[25] );
See MooX::Types::MooseLike::Base for a list of available base types. Its source also provides an example of how to build base types, along with both parameterizable and non-parameterizable.
See MooX::Types::MooseLike::Numeric for an example of how to build subtypes.
See MooX::Types::SetObject for an example of how to build parameterized types.
mateu - Mateu X. Hunter (cpan:MATEU) <hunter@missoula.org>
mst - Matt S. Trout (cpan:MSTROUT) <mst@shadowcat.co.uk>
Mithaldu - Christian Walde (cpan:MITHALDU) <walde.christian@googlemail.com>
Matt Phillips (cpan:MATTP) <mattp@cpan.org>
Arthur Axel fREW Schmidt (cpan:FREW) <frioux@gmail.com>
Toby Inkster (cpan:TOBYINK) <tobyink@cpan.org>
Graham Knop (cpan:HAARG) <haarg@cpan.org>
Copyright (c) 2011-2013 the MooX::Types::MooseLike "AUTHOR" and "CONTRIBUTORS" as listed above.
This library is free software and may be distributed under the same terms as perl itself.
To install MooX::Types::MooseLike, copy and paste the appropriate command in to your terminal.
cpanm
cpanm MooX::Types::MooseLike
CPAN shell
perl -MCPAN -e shell install MooX::Types::MooseLike
For more information on module installation, please visit the detailed CPAN module installation guide.