Class::Meta::Types::Perl(3) 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 <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]>.

AUTHOR

David E. Wheeler <[email protected]>

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.