Data::Object
Object-Orientation for Perl 5
package main; use Data::Object; my $array = Box Array [1..4]; # my $iterator = $array->iterator; # $iterator->next; # 1
This package automatically exports and provides constructor functions for creating chainable data type objects from raw Perl data types.
This package uses type constraints from:
Data::Object::Types
This package implements the following functions:
Args(HashRef $data) : InstanceOf["Data::Object::Args"]
The Args function returns a Data::Object::Args object.
package main; use Data::Object 'Args'; my $args = Args; # [...]
package main; my $args = Args { subcommand => 0 }; # $args->subcommand;
Array(ArrayRef $data) : InstanceOf["Data::Object::Array"]
The Array function returns a Data::Object::Box which wraps a Data::Object::Array object.
package main; my $array = Array; # []
package main; my $array = Array [1..4];
Boolean(Bool $data) : BooleanObject
The Boolean function returns a Data::Object::Boolean object representing a true or false value.
package main; my $boolean = Boolean;
package main; my $boolean = Boolean 0;
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.
package main; my $box = Box;
package main; my $box = Box 123;
package main; my $box = Box [1..4];
package main; my $box = Box {1..4};
Code(CodeRef $data) : InstanceOf["Data::Object::Code"]
The Code function returns a Data::Object::Box which wraps a Data::Object::Code object.
package main; my $code = Code;
package main; my $code = Code sub { shift };
Data(Str $file) : InstanceOf["Data::Object::Data"]
The Data function returns a Data::Object::Data object.
package main; use Data::Object 'Data'; my $data = Data;
package main; my $data = Data 't/Data_Object.t'; # $data->contents(...);
Error(Str | HashRef) : InstanceOf["Data::Object::Exception"]
The Error function returns a Data::Object::Exception object.
package main; use Data::Object 'Error'; my $error = Error; # die $error;
package main; my $error = Error 'Oops!'; # die $error;
package main; my $error = Error { message => 'Oops!', context => { time => time } }; # die $error;
False() : BooleanObject
The False function returns a Data::Object::Boolean object representing a false value.
package main; my $false = False;
Float(Num $data) : InstanceOf["Data::Object::Float"]
The Float function returns a Data::Object::Box which wraps a Data::Object::Float object.
package main; my $float = Float;
package main; my $float = Float '0.0';
Hash(HashRef $data) : InstanceOf["Data::Object::Hash"]
The Hash function returns a Data::Object::Box which wraps a Data::Object::Hash object.
package main; my $hash = Hash;
package main; my $hash = Hash {1..4};
Name(Str $data) : InstanceOf["Data::Object::Name"]
The Name function returns a Name::Object::Name object.
package main; use Data::Object 'Name'; my $name = Name 'Example Title'; # $name->package;
Number(Num $data) : InstanceOf["Data::Object::Number"]
The Number function returns a Data::Object::Box which wraps a Data::Object::Number object.
package main; my $number = Number;
package main; my $number = Number 123;
Opts(HashRef $data) : InstanceOf["Data::Object::Opts"]
The Opts function returns a Data::Object::Opts object.
package main; use Data::Object 'Opts'; my $opts = Opts;
package main; my $opts = Opts { spec => ['files|f=s'] }; # $opts->files; [...]
Regexp(RegexpRef $data) : InstanceOf["Data::Object::Regexp"]
The Regexp function returns a Data::Object::Box which wraps a Data::Object::Regexp object.
package main; my $regexp = Regexp;
package main; my $regexp = Regexp qr/.*/;
Scalar(Ref $data) : InstanceOf["Data::Object::Scalar"]
The Scalar function returns a Data::Object::Box which wraps a Data::Object::Scalar object.
package main; my $scalar = Scalar;
package main; my $scalar = Scalar \*main;
Space(Str $data) : InstanceOf["Data::Object::Space"]
The Space function returns a Data::Object::Space object.
package main; use Data::Object 'Space'; my $space = Space 'Example Namespace';
String(Str $data) : InstanceOf["Data::Object::String"]
The String function returns a Data::Object::Box which wraps a Data::Object::String object.
package main; my $string = String;
package main; my $string = String 'abc';
Struct(HashRef $data) : InstanceOf["Data::Object::Struct"]
The Struct function returns a Data::Object::Struct object.
package main; use Data::Object 'Struct'; my $struct = Struct;
package main; my $struct = Struct { name => 'example', time => time };
True() : BooleanObject
The True function returns a Data::Object::Boolean object representing a true value.
package main; my $true = True;
Undef() : InstanceOf["Data::Object::Undef"]
The Undef function returns a Data::Object::Undef object representing the undefined value.
package main; my $undef = Undef;
Vars() : InstanceOf["Data::Object::Vars"]
The Vars function returns a Data::Object::Vars object representing the available environment variables.
package main; use Data::Object 'Vars'; my $vars = Vars;
package main; my $vars = Vars { user => 'USER' }; # $vars->user; # $USER
Al Newkirk, awncorp@cpan.org
awncorp@cpan.org
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".
Wiki
Project
Initiatives
Milestones
Contributing
Issues
To install Data::Object, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Data::Object
CPAN shell
perl -MCPAN -e shell install Data::Object
For more information on module installation, please visit the detailed CPAN module installation guide.