NAME
    Data::Object - Data Type Objects for Perl 5

VERSION
    version 0.03

SYNOPSIS
        use Data::Object 'deduce';

        my $object = deduce [1..9];

        $object->count; # 9

DESCRIPTION
    Data::Object provides functions for promoting Perl 5 native data types
    to objects which provide common methods for operating on the data.

FUNCTIONS
  load
        # given 'List::Util';

        $package = load 'List::Util'; # List::Util if loaded

    The load function attempts to dynamically load a module and either dies
    or returns the package name of the loaded module.

  deduce
        # given qr/\w+/;

        $object = deduce qr/\w+/;
        $object->isa('Data::Object::Scalar');

    The deduce function returns a data type object instance based upon the
    deduced type of data provided.

  type_array
        # given [2..5];

        $object = type_array [2..5];
        $object->isa('Data::Object::Array');

    The type_array function returns a Data::Object::Array instance which
    wraps the provided data type and can be used to perform operations on
    the data.

  type_code
        # given sub { 1 };

        $object = type_code sub { 1 };
        $object->isa('Data::Object::Code');

    The type_code function returns a Data::Object::Code instance which wraps
    the provided data type and can be used to perform operations on the
    data.

  type_float
        # given 5.25;

        $object = type_float 5.25;
        $object->isa('Data::Object::Float');

    The type_float function returns a Data::Object::Float instance which
    wraps the provided data type and can be used to perform operations on
    the data.

  type_hash
        # given {1..4};

        $object = type_hash {1..4};
        $object->isa('Data::Object::Hash');

    The type_hash function returns a Data::Object::Hash instance which wraps
    the provided data type and can be used to perform operations on the
    data.

  type_integer
        # given 100;

        $object = type_integer 100;
        $object->isa('Data::Object::Integer');

    The type_integer function returns a Data::Object::Object instance which
    wraps the provided data type and can be used to perform operations on
    the data.

  type_number
        # given "-900";

        $object = type_number "-900";

    The type_number function returns a Data::Object::Number instance which
    wraps the provided data type and can be used to perform operations on
    the data.

  type_scalar
        # given qr/\w+/;

        $object = type_scalar qr/\w+/;
        $object->isa('Data::Object::Scalar');

    The type_scalar function returns a Data::Object::Scalar instance which
    wraps the provided data type and can be used to perform operations on
    the data.

  type_string
        # given 'abcdefghi';

        $object = type_string 'abcdefghi';
        $object->isa('Data::Object::String');

    The type_string function returns a Data::Object::String instance which
    wraps the provided data type and can be used to perform operations on
    the data.

  type_undef
        # given undef;

        $object = type_undef undef;
        $object->isa('Data::Object::Undef');

    The type_undef function returns a Data::Object::Undef instance which
    wraps the provided data type and can be used to perform operations on
    the data.

  type_universal
        # given 0;

        $object = type_universal 0;
        $object->isa('Data::Object::Universal');

    The type_universal function returns a Data::Object::Universal instance
    which wraps the provided data type and can be used to perform operations
    on the data.

SEE ALSO
    *   Data::Object::Array

    *   Data::Object::Code

    *   Data::Object::Float

    *   Data::Object::Hash

    *   Data::Object::Integer

    *   Data::Object::Number

    *   Data::Object::Scalar

    *   Data::Object::String

    *   Data::Object::Undef

    *   Data::Object::Universal

AUTHOR
    Al Newkirk <anewkirk@ana.io>

COPYRIGHT AND LICENSE
    This software is copyright (c) 2014 by Al Newkirk.

    This is free software; you can redistribute it and/or modify it under
    the same terms as the Perl 5 programming language system itself.

