NAME
Class::Meta::Types::Perl - Perl data types
SYNOPSIS
package MyApp::Thingy;
use strict;
use Class::Meta;
use Class::Meta::Types::Perl;
# OR...
# use Class::Meta::Types::Perl 'affordance';
# OR...
# use Class::Meta::Types::Perl 'semi-affordance';
BEGIN {
# Create a Class::Meta object for this class.
my $cm = Class::Meta->new( key => 'thingy' );
# Add an integer attribute.
$cm->add_attribute( name => 'my_hash',
type => 'hash' );
$cm->build;
}
DESCRIPTION
This module provides Perl data types for use with Class::Meta attributes. Simply load it, then pass the name of one of its types to the add_attribute()
method of a Class::Meta object. See Class::Meta::Type for more information on using and creating data types.
The validation checks for Class::Meta::Types::Perl are provided by the Class::Meta::Type's support for object type validation, since Perl data types are understood by UNIVERSAL::isa()
.
The data types created by Class::Meta::Types::Perl are:
- scalar
-
A simple scalar value. This can be anything, and has no validation checks.
- scalarref
-
A scalar reference.
UNIVERSAL::isa()
must return 'SCALAR'. - array
- arrayref
-
A array reference.
UNIVERSAL::isa()
must return 'ARRAY'. - hash
- hashref
-
A hash reference.
UNIVERSAL::isa()
must return 'HASH'. - code
- coderef
- closure
-
A code reference. Also known as a closure.
UNIVERSAL::isa()
must return 'CODE'.
SUPPORT
This module is stored in an open GitHub repository. Feel free to fork and contribute!
Please file bug reports via GitHub Issues or by sending mail to bug-Class-Meta@rt.cpan.org.
AUTHOR
David E. Wheeler <david@justatheory.com>
SEE ALSO
Other classes of interest within the Class::Meta distribution include:
- Class::Meta
-
This class contains most of the documentation you need to get started with Class::Meta.
- Class::Meta::Type
-
This class manages the creation of data types.
- Class::Meta::Attribute
-
This class manages Class::Meta class attributes, all of which are based on data types.
Other data type modules:
COPYRIGHT AND LICENSE
Copyright (c) 2002-2011, David E. Wheeler. Some Rights Reserved.
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.