Data::Object::Cast
Data Type Casting for Perl 5
function: Deduce function: DeduceDeep function: Detract function: DetractDeep function: TypeName
package main;
use Data::Object::Cast;
local $Data::Object::Cast::To = 'Test::Object';
# Data::Object::Cast::Deduce([1..4]); # Test::Object::Array
Types::Standard
This package provides functions for casting native data types to objects and the reverse.
The Deduce function returns the argument as a data type object.
Deduce(Any $value) : Object
=example-1 Deduce
# given: synopsis
Data::Object::Cast::Deduce([1..4])
# $array
=example-2 Deduce
# given: synopsis
Data::Object::Cast::Deduce(sub { shift })
# $code
=example-3 Deduce
# given: synopsis
Data::Object::Cast::Deduce(1.23)
# $float
=example-4 Deduce
# given: synopsis
Data::Object::Cast::Deduce({1..4})
# $hash
=example-5 Deduce
# given: synopsis
Data::Object::Cast::Deduce(123)
# $number
=example-6 Deduce
# given: synopsis
Data::Object::Cast::Deduce(qr/.*/)
# $regexp
=example-7 Deduce
# given: synopsis
Data::Object::Cast::Deduce(\'abc')
# $scalar
=example-8 Deduce
# given: synopsis
Data::Object::Cast::Deduce('abc')
# $string
=example-9 Deduce
# given: synopsis
Data::Object::Cast::Deduce(undef)
# $undef
The DeduceDeep function returns any arguments as data type objects, including nested data.
DeduceDeep(Any @args) : (Object)
=example-1 DeduceDeep
# given: synopsis
Data::Object::Cast::DeduceDeep([1..4])
# $array <$number>
=example-2 DeduceDeep
# given: synopsis
Data::Object::Cast::DeduceDeep({1..4})
# $hash <$number>
The Detract function returns the argument as native Perl data type value.
Detract(Any $value) : Any
=example-1 Detract
# given: synopsis
Data::Object::Cast::Detract(
Data::Object::Cast::Deduce(
[1..4]
)
)
# $arrayref
=example-2 Detract
# given: synopsis
Data::Object::Cast::Detract(
Data::Object::Cast::Deduce(
sub { shift }
)
)
# $coderef
=example-3 Detract
# given: synopsis
Data::Object::Cast::Detract(
Data::Object::Cast::Deduce(
1.23
)
)
# $number
=example-4 Detract
# given: synopsis
Data::Object::Cast::Detract(
Data::Object::Cast::Deduce(
{1..4}
)
)
# $hashref
=example-5 Detract
# given: synopsis
Data::Object::Cast::Detract(
Data::Object::Cast::Deduce(
123
)
)
# $number
=example-6 Detract
# given: synopsis
Data::Object::Cast::Detract(
Data::Object::Cast::Deduce(
qr/.*/
)
)
# $regexp
=example-7 Detract
# given: synopsis
Data::Object::Cast::Detract(
Data::Object::Cast::Deduce(
\'abc'
)
)
# $scalarref
=example-8 Detract
# given: synopsis
Data::Object::Cast::Detract(
Data::Object::Cast::Deduce(
'abc'
)
)
# $string
=example-9 Detract
# given: synopsis
Data::Object::Cast::Detract(
Data::Object::Cast::Deduce(
undef
)
)
# $undef
The DetractDeep function returns any arguments as native Perl data type values, including nested data.
DetractDeep(Any @args) : (Any)
=example-1 DetractDeep
# given: synopsis
Data::Object::Cast::DetractDeep(
Data::Object::Cast::DeduceDeep(
[1..4]
)
)
=example-2 DetractDeep
# given: synopsis
Data::Object::Cast::DetractDeep(
Data::Object::Cast::DeduceDeep(
{1..4}
)
)
The TypeName function returns the name of the value's data type.
TypeName(Any $value) : Maybe[Str]
=example-1 TypeName
# given: synopsis
Data::Object::Cast::TypeName([1..4])
# 'ARRAY'
=example-2 TypeName
# given: synopsis
Data::Object::Cast::TypeName(sub { shift })
# 'CODE'
=example-3 TypeName
# given: synopsis
Data::Object::Cast::TypeName(1.23)
# 'FLOAT'
=example-4 TypeName
# given: synopsis
Data::Object::Cast::TypeName({1..4})
# 'HASH'
=example-5 TypeName
# given: synopsis
Data::Object::Cast::TypeName(123)
# 'NUMBER'
=example-6 TypeName
# given: synopsis
Data::Object::Cast::TypeName(qr/.*/)
# 'REGEXP'
=example-7 TypeName
# given: synopsis
Data::Object::Cast::TypeName(\'abc')
# 'STRING'
=example-8 TypeName
# given: synopsis
Data::Object::Cast::TypeName('abc')
# 'STRING'
=example-9 TypeName
# given: synopsis
Data::Object::Cast::TypeName(undef)
# 'UNDEF'
16 POD Errors
The following errors were encountered while parsing the POD:
- Around line 10:
Unknown directive: =name
- Around line 16:
Unknown directive: =abstract
- Around line 22:
Unknown directive: =includes
- Around line 32:
Unknown directive: =synopsis
- Around line 44:
Unknown directive: =libraries
- Around line 50:
Unknown directive: =description
- Around line 57:
Unknown directive: =function
- Around line 61:
Unknown directive: =signature
- Around line 139:
Unknown directive: =function
- Around line 144:
Unknown directive: =signature
- Around line 166:
Unknown directive: =function
- Around line 170:
Unknown directive: =signature
- Around line 284:
Unknown directive: =function
- Around line 289:
Unknown directive: =signature
- Around line 315:
Unknown directive: =function
- Around line 319:
Unknown directive: =signature