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:

Class::Meta::Types::String
Class::Meta::Types::Boolean
Class::Meta::Types::Numeric

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.