Class::Meta::Types::Perl - Perl data types
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;
}
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'.
This module is stored in an open GitHub repository
<
http://github.com/theory/class-meta/>. Feel free to fork and
contribute!
Please file bug reports via GitHub Issues
<
http://github.com/theory/class-meta/issues/> or by sending mail to
[email protected] <mailto:
[email protected]>.
David E. Wheeler <
[email protected]>
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:
- Class::Meta::Types::String
- Class::Meta::Types::Boolean
- Class::Meta::Types::Numeric
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.