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'.
BUGS
Please report all bugs via the CPAN Request Tracker at http://rt.cpan.org/NoAuth/Bugs.html?Dist=Class-Meta.
AUTHOR
David Wheeler <david@kineticode.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-2004, David Wheeler. All Rights Reserved.
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.