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>