NAME

    Data::Object

ABSTRACT

    Object-Orientation for Perl 5

SYNOPSIS

      package main;
    
      use Data::Object;
    
      my $array = Array [1..4];
    
      # my $iterator = $array->iterator;
    
      # $iterator->next; # 1

DESCRIPTION

    This package automatically exports and provides constructor functions
    for creating chainable data type objects from raw Perl data types.

LIBRARIES

    This package uses type constraints from:

    Data::Object::Types

FUNCTIONS

    This package implements the following functions:

 array

      Array(ArrayRef $data) : InstanceOf["Data::Object::Box"]

    The Array function returns a Data::Object::Box which wraps a
    Data::Object::Array object.

    Array example #1

        package main;
      
        my $array = Array; # []

    Array example #2

        package main;
      
        my $array = Array [1..4];

 boolean

      Boolean(Bool $data) : BooleanObject

    The Boolean function returns a Data::Object::Boolean object
    representing a true or false value.

    Boolean example #1

        package main;
      
        my $boolean = Boolean;

    Boolean example #2

        package main;
      
        my $boolean = Boolean 0;

 box

      Box(Any $data) : InstanceOf["Data::Object::Box"]

    The Box function returns a Data::Object::Box object representing a data
    type object which is automatically deduced.

    Box example #1

        package main;
      
        my $box = Box;

    Box example #2

        package main;
      
        my $box = Box 123;

    Box example #3

        package main;
      
        my $box = Box [1..4];

    Box example #4

        package main;
      
        my $box = Box {1..4};

 code

      Code(CodeRef $data) : InstanceOf["Data::Object::Box"]

    The Code function returns a Data::Object::Box which wraps a
    Data::Object::Code object.

    Code example #1

        package main;
      
        my $code = Code;

    Code example #2

        package main;
      
        my $code = Code sub { shift };

 false

      False() : BooleanObject

    The False function returns a Data::Object::Boolean object representing
    a false value.

    False example #1

        package main;
      
        my $false = False;

 float

      Float(Num $data) : InstanceOf["Data::Object::Box"]

    The Float function returns a Data::Object::Box which wraps a
    Data::Object::Float object.

    Float example #1

        package main;
      
        my $float = Float;

    Float example #2

        package main;
      
        my $float = Float '0.0';

 hash

      Hash(HashRef $data) : InstanceOf["Data::Object::Box"]

    The Hash function returns a Data::Object::Box which wraps a
    Data::Object::Hash object.

    Hash example #1

        package main;
      
        my $hash = Hash;

    Hash example #2

        package main;
      
        my $hash = Hash {1..4};

 number

      Number(Num $data) : InstanceOf["Data::Object::Box"]

    The Number function returns a Data::Object::Box which wraps a
    Data::Object::Number object.

    Number example #1

        package main;
      
        my $number = Number;

    Number example #2

        package main;
      
        my $number = Number 123;

 regexp

      Regexp(RegexpRef $data) : InstanceOf["Data::Object::Box"]

    The Regexp function returns a Data::Object::Box which wraps a
    Data::Object::Regexp object.

    Regexp example #1

        package main;
      
        my $regexp = Regexp;

    Regexp example #2

        package main;
      
        my $regexp = Regexp qr/.*/;

 scalar

      Scalar(Ref $data) : InstanceOf["Data::Object::Box"]

    The Scalar function returns a Data::Object::Box which wraps a
    Data::Object::Scalar object.

    Scalar example #1

        package main;
      
        my $scalar = Scalar;

    Scalar example #2

        package main;
      
        my $scalar = Scalar \*main;

 string

      String(Str $data) : InstanceOf["Data::Object::Box"]

    The String function returns a Data::Object::Box which wraps a
    Data::Object::String object.

    String example #1

        package main;
      
        my $string = String;

    String example #2

        package main;
      
        my $string = String 'abc';

 true

      True() : BooleanObject

    The True function returns a Data::Object::Boolean object representing a
    true value.

    True example #1

        package main;
      
        my $true = True;

 undef

      Undef() : InstanceOf["Data::Object::Box"]

    The Undef function returns a Data::Object::Undef object representing
    the undefined value.

    Undef example #1

        package main;
      
        my $undef = Undef;

AUTHOR

    Al Newkirk, awncorp@cpan.org

LICENSE

    Copyright (C) 2011-2019, Al Newkirk, et al.

    This is free software; you can redistribute it and/or modify it under
    the terms of the The Apache License, Version 2.0, as elucidated in the
    "license file"
    <https://github.com/iamalnewkirk/foobar/blob/master/LICENSE>.

PROJECT

    Wiki <https://github.com/iamalnewkirk/foobar/wiki>

    Project <https://github.com/iamalnewkirk/foobar>

    Initiatives <https://github.com/iamalnewkirk/foobar/projects>

    Milestones <https://github.com/iamalnewkirk/foobar/milestones>

    Contributing
    <https://github.com/iamalnewkirk/foobar/blob/master/CONTRIBUTE.md>

    Issues <https://github.com/iamalnewkirk/foobar/issues>