NAME
Data::Object - Data Type Objects for Perl 5
VERSION
version 0.05
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. Note: This is an early release available for testing and feedback and as such is subject to change.
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.
deduce_deep
# given {1,2,3,{4,5,6,[-1]}}
$deep = deduce_deep {1,2,3,{4,5,6,[-1]}}; # produces ...
# Data::Object::Hash {
# 1 => Data::Object::Number ( 2 ),
# 3 => Data::Object::Hash {
# 4 => Data::Object::Number ( 5 ),
# 6 => Data::Object::Array [ Data::Object::Integer ( -1 ) ],
# },
# }
The deduce_deep function returns a data type object. If the data provided is complex, this function traverses the data converting all nested data to objects. Note: Blessed objects are not traversed.
deduce_type
# given qr/\w+/;
$type = deduce_type qr/\w+/; # SCALAR
The deduce_type function returns a data type description for the type of data provided, represented as a string in capital letters. Note: This function calls deduce on the argument before determining its type which means the argument will be promoted to an object as a result.
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.
ASSERTIONS
The type assertions functions exported can be used on to help ensure data integrity and prevent invalid usage patterns. The following is a list of standard type assertion functions whose routines map to those corresponding in the Types::Standard library.
asa_aref
my $thing = undef;
asa_aref $thing;
The aref function asserts that the argument is an array reference. If the argument is not an array reference, the program will die.
asa_arrayref
my $thing = undef;
asa_arrayref $thing;
The arrayref function asserts that the argument is an array reference. If the argument is not an array reference, the program will die.
asa_bool
my $thing = undef;
asa_bool $thing;
The bool function asserts that the argument is a boolean value. If the argument is not a boolean value, the program will die.
asa_boolean
my $thing = undef;
asa_boolean $thing;
The boolean function asserts that the argument is a boolean value. If the argument is not a boolean value, the program will die.
asa_class
my $thing = undef;
asa_class $thing;
The class function asserts that the argument is a class name. If the argument is not a class name, the program will die.
asa_classname
my $thing = undef;
asa_classname $thing;
The classname function asserts that the argument is a class name. If the argument is not a class name, the program will die.
asa_coderef
my $thing = undef;
asa_coderef $thing;
The coderef function asserts that the argument is a code reference. If the argument is not a code reference, the program will die.
asa_cref
my $thing = undef;
asa_cref $thing;
The cref function asserts that the argument is a code reference. If the argument is not a code reference, the program will die.
asa_def
my $thing = undef;
asa_def $thing;
The def function asserts that the argument is a defined value. If the argument is not a defined value, the program will die.
asa_defined
my $thing = undef;
asa_defined $thing;
The defined function asserts that the argument is a defined value. If the argument is not a defined value, the program will die.
asa_fh
my $thing = undef;
asa_fh $thing;
The fh function asserts that the argument is a file handle. If the argument is not a file handle, the program will die.
asa_filehandle
my $thing = undef;
asa_filehandle $thing;
The filehandle function asserts that the argument is a file handle. If the argument is not a file handle, the program will die.
asa_glob
my $thing = undef;
asa_glob $thing;
The glob function asserts that the argument is a glob reference. If the argument is not a glob reference, the program will die.
asa_globref
my $thing = undef;
asa_globref $thing;
The globref function asserts that the argument is a glob reference. If the argument is not a glob reference, the program will die.
asa_hashref
my $thing = undef;
asa_hashref $thing;
The hashref function asserts that the argument is a hash reference. If the argument is not a hash reference, the program will die.
asa_href
my $thing = undef;
asa_href $thing;
The href function asserts that the argument is a hash reference. If the argument is not a hash reference, the program will die.
asa_int
my $thing = undef;
asa_int $thing;
The int function asserts that the argument is an integer. If the argument is not an integer, the program will die.
asa_integer
my $thing = undef;
asa_integer $thing;
The integer function asserts that the argument is an integer. If the argument is not an integer, the program will die.
asa_num
my $thing = undef;
asa_num $thing;
The num function asserts that the argument is a number. If the argument is not a number, the program will die.
asa_number
my $thing = undef;
asa_number $thing;
The number function asserts that the argument is a number. If the argument is not a number, the program will die.
asa_obj
my $thing = undef;
asa_obj $thing;
The obj function asserts that the argument is an object. If the argument is not an object, the program will die.
asa_object
my $thing = undef;
asa_object $thing;
The object function asserts that the argument is an object. If the argument is not an object, the program will die.
asa_ref
my $thing = undef;
asa_ref $thing;
The ref function asserts that the argument is a reference. If the argument is not a reference, the program will die.
asa_reference
my $thing = undef;
asa_reference $thing;
The reference function asserts that the argument is a reference. If the argument is not a reference, the program will die.
asa_regexpref
my $thing = undef;
asa_regexpref $thing;
The regexpref function asserts that the argument is a regular expression reference. If the argument is not a regular expression reference, the program will die.
asa_rref
my $thing = undef;
asa_rref $thing;
The rref function asserts that the argument is a regular expression reference. If the argument is not a regular expression reference, the program will die.
asa_scalarref
my $thing = undef;
asa_scalarref $thing;
The scalarref function asserts that the argument is a scalar reference. If the argument is not a scalar reference, the program will die.
asa_sref
my $thing = undef;
asa_sref $thing;
The sref function asserts that the argument is a scalar reference. If the argument is not a scalar reference, the program will die.
asa_str
my $thing = undef;
asa_str $thing;
The str function asserts that the argument is a string. If the argument is not a string, the program will die.
asa_string
my $thing = undef;
asa_string $thing;
The string function asserts that the argument is a string. If the argument is not a string, the program will die.
asa_nil
my $thing = undef;
asa_nil $thing;
The nil function asserts that the argument is an undefined value. If the argument is not an undefined value, the program will die.
asa_null
my $thing = undef;
asa_null $thing;
The null function asserts that the argument is an undefined value. If the argument is not an undefined value, the program will die.
asa_undef
my $thing = undef;
asa_undef $thing;
The undef function asserts that the argument is an undefined value. If the argument is not an undefined value, the program will die.
asa_undefined
my $thing = undef;
asa_undefined $thing;
The undefined function asserts that the argument is an undefined value. If the argument is not an undefined value, the program will die.
asa_val
my $thing = undef;
asa_val $thing;
The val function asserts that the argument is a value. If the argument is not a value, the program will die.
asa_value
my $thing = undef;
asa_value $thing;
The value method asserts that the argument is a value. If the argument is not a value, the program will die.
VALIDATIONS
The type validation functions can be used to help control the flow of operations. The following is a list of standard type checking functions whose routines map to those corresponding in the Types::Standard library.
isa_aref
my $thing = undef;
isa_aref $thing;
The aref function checks that the argument is an array reference. If the argument is not an array reference, the function will return false.
isa_arrayref
my $thing = undef;
isa_arrayref $thing;
The arrayref function checks that the argument is an array reference. If the argument is not an array reference, the function will return false.
isa_bool
my $thing = undef;
isa_bool $thing;
The bool function checks that the argument is a boolean value. If the argument is not a boolean value, the function will return false.
isa_boolean
my $thing = undef;
isa_boolean $thing;
The boolean function checks that the argument is a boolean value. If the argument is not a boolean value, the function will return false.
isa_class
my $thing = undef;
isa_class $thing;
The class function checks that the argument is a class name. If the argument is not a class name, the function will return false.
isa_classname
my $thing = undef;
isa_classname $thing;
The classname function checks that the argument is a class name. If the argument is not a class name, the function will return false.
isa_coderef
my $thing = undef;
isa_coderef $thing;
The coderef function checks that the argument is a code reference. If the argument is not a code reference, the function will return false.
isa_cref
my $thing = undef;
isa_cref $thing;
The cref function checks that the argument is a code reference. If the argument is not a code reference, the function will return false.
isa_def
my $thing = undef;
isa_def $thing;
The def function checks that the argument is a defined value. If the argument is not a defined value, the function will return false.
isa_defined
my $thing = undef;
isa_defined $thing;
The defined function checks that the argument is a defined value. If the argument is not a defined value, the function will return false.
isa_fh
my $thing = undef;
isa_fh $thing;
The fh function checks that the argument is a file handle. If the argument is not a file handle, the function will return false.
isa_filehandle
my $thing = undef;
isa_filehandle $thing;
The filehandle function checks that the argument is a file handle. If the argument is not a file handle, the function will return false.
isa_glob
my $thing = undef;
isa_glob $thing;
The glob function checks that the argument is a glob reference. If the argument is not a glob reference, the function will return false.
isa_globref
my $thing = undef;
isa_globref $thing;
The globref function checks that the argument is a glob reference. If the argument is not a glob reference, the function will return false.
isa_hashref
my $thing = undef;
isa_hashref $thing;
The hashref function checks that the argument is a hash reference. If the argument is not a hash reference, the function will return false.
isa_href
my $thing = undef;
isa_href $thing;
The href function checks that the argument is a hash reference. If the argument is not a hash reference, the function will return false.
isa_int
my $thing = undef;
isa_int $thing;
The int function checks that the argument is an integer. If the argument is not an integer, the function will return false.
isa_integer
my $thing = undef;
isa_integer $thing;
The integer function checks that the argument is an integer. If the argument is not an integer, the function will return false.
isa_num
my $thing = undef;
isa_num $thing;
The num function checks that the argument is a number. If the argument is not a number, the function will return false.
isa_number
my $thing = undef;
isa_number $thing;
The number function checks that the argument is a number. If the argument is not a number, the function will return false.
isa_obj
my $thing = undef;
isa_obj $thing;
The obj function checks that the argument is an object. If the argument is not an object, the function will return false.
isa_object
my $thing = undef;
isa_object $thing;
The object function checks that the argument is an object. If the argument is not an object, the function will return false.
isa_ref
my $thing = undef;
isa_ref $thing;
The ref function checks that the argument is a reference. If the argument is not a reference, the function will return false.
isa_reference
my $thing = undef;
isa_reference $thing;
The reference function checks that the argument is a reference. If the argument is not a reference, the function will return false.
isa_regexpref
my $thing = undef;
isa_regexpref $thing;
The regexpref function checks that the argument is a regular expression reference. If the argument is not a regular expression reference, the function will return false.
isa_rref
my $thing = undef;
isa_rref $thing;
The rref function checks that the argument is a regular expression reference. If the argument is not a regular expression reference, the function will return false.
isa_scalarref
my $thing = undef;
isa_scalarref $thing;
The scalarref function checks that the argument is a scalar reference. If the argument is not a scalar reference, the function will return false.
isa_sref
my $thing = undef;
isa_sref $thing;
The sref function checks that the argument is a scalar reference. If the argument is not a scalar reference, the function will return false.
isa_str
my $thing = undef;
isa_str $thing;
The str function checks that the argument is a string. If the argument is not a string, the function will return false.
isa_string
my $thing = undef;
isa_string $thing;
The string function checks that the argument is a string. If the argument is not a string, the function will return false.
isa_nil
my $thing = undef;
isa_nil $thing;
The nil function checks that the argument is an undefined value. If the argument is not an undefined value, the function will return false.
isa_null
my $thing = undef;
isa_null $thing;
The null function checks that the argument is an undefined value. If the argument is not an undefined value, the function will return false.
isa_undef
my $thing = undef;
isa_undef $thing;
The undef function checks that the argument is an undefined value. If the argument is not an undefined value, the function will return false.
isa_undefined
my $thing = undef;
isa_undefined $thing;
The undefined function checks that the argument is an undefined value. If the argument is not an undefined value, the function will return false.
isa_val
my $thing = undef;
isa_val $thing;
The val function checks that the argument is a value. If the argument is not a value, the function will return false.
isa_value
my $thing = undef;
isa_value $thing;
The value function checks that the argument is a value. If the argument is not a value, the function will return false.
SEE ALSO
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.