NAME
Data::Object::Cast
ABSTRACT
Data Type Casting for Perl 5
SYNOPSIS
package main;
use Data::Object::Cast;
local $Data::Object::Cast::To = 'Test::Object';
# Data::Object::Cast::Deduce([1..4]); # Test::Object::Array
DESCRIPTION
This package provides functions for casting native data types to objects and the reverse.
LIBRARIES
This package uses type constraints from:
FUNCTIONS
This package implements the following functions:
deduce
Deduce(Any $value) : Object
The Deduce function returns the argument as a data type object.
-
Deduce example #1
# given: synopsis Data::Object::Cast::Deduce([1..4]) # $array -
Deduce example #2
# given: synopsis Data::Object::Cast::Deduce(sub { shift }) # $code -
Deduce example #3
# given: synopsis Data::Object::Cast::Deduce(1.23) # $float -
Deduce example #4
# given: synopsis Data::Object::Cast::Deduce({1..4}) # $hash -
Deduce example #5
# given: synopsis Data::Object::Cast::Deduce(123) # $number -
Deduce example #6
# given: synopsis Data::Object::Cast::Deduce(qr/.*/) # $regexp -
Deduce example #7
# given: synopsis Data::Object::Cast::Deduce(\'abc') # $scalar -
Deduce example #8
# given: synopsis Data::Object::Cast::Deduce('abc') # $string -
Deduce example #9
# given: synopsis Data::Object::Cast::Deduce(undef) # $undef
deducedeep
DeduceDeep(Any @args) : (Object)
The DeduceDeep function returns any arguments as data type objects, including nested data.
-
DeduceDeep example #1
# given: synopsis Data::Object::Cast::DeduceDeep([1..4]) # $array <$number> -
DeduceDeep example #2
# given: synopsis Data::Object::Cast::DeduceDeep({1..4}) # $hash <$number>
detract
Detract(Any $value) : Any
The Detract function returns the argument as native Perl data type value.
-
Detract example #1
# given: synopsis Data::Object::Cast::Detract( Data::Object::Cast::Deduce( [1..4] ) ) # $arrayref -
Detract example #2
# given: synopsis Data::Object::Cast::Detract( Data::Object::Cast::Deduce( sub { shift } ) ) # $coderef -
Detract example #3
# given: synopsis Data::Object::Cast::Detract( Data::Object::Cast::Deduce( 1.23 ) ) # $number -
Detract example #4
# given: synopsis Data::Object::Cast::Detract( Data::Object::Cast::Deduce( {1..4} ) ) # $hashref -
Detract example #5
# given: synopsis Data::Object::Cast::Detract( Data::Object::Cast::Deduce( 123 ) ) # $number -
Detract example #6
# given: synopsis Data::Object::Cast::Detract( Data::Object::Cast::Deduce( qr/.*/ ) ) # $regexp -
Detract example #7
# given: synopsis Data::Object::Cast::Detract( Data::Object::Cast::Deduce( \'abc' ) ) # $scalarref -
Detract example #8
# given: synopsis Data::Object::Cast::Detract( Data::Object::Cast::Deduce( 'abc' ) ) # $string -
Detract example #9
# given: synopsis Data::Object::Cast::Detract( Data::Object::Cast::Deduce( undef ) ) # $undef
detractdeep
DetractDeep(Any @args) : (Any)
The DetractDeep function returns any arguments as native Perl data type values, including nested data.
-
DetractDeep example #1
# given: synopsis Data::Object::Cast::DetractDeep( Data::Object::Cast::DeduceDeep( [1..4] ) ) -
DetractDeep example #2
# given: synopsis Data::Object::Cast::DetractDeep( Data::Object::Cast::DeduceDeep( {1..4} ) )
typename
TypeName(Any $value) : Maybe[Str]
The TypeName function returns the name of the value's data type.
-
TypeName example #1
# given: synopsis Data::Object::Cast::TypeName([1..4]) # 'ARRAY' -
TypeName example #2
# given: synopsis Data::Object::Cast::TypeName(sub { shift }) # 'CODE' -
TypeName example #3
# given: synopsis Data::Object::Cast::TypeName(1.23) # 'FLOAT' -
TypeName example #4
# given: synopsis Data::Object::Cast::TypeName({1..4}) # 'HASH' -
TypeName example #5
# given: synopsis Data::Object::Cast::TypeName(123) # 'NUMBER' -
TypeName example #6
# given: synopsis Data::Object::Cast::TypeName(qr/.*/) # 'REGEXP' -
TypeName example #7
# given: synopsis Data::Object::Cast::TypeName(\'abc') # 'STRING' -
TypeName example #8
# given: synopsis Data::Object::Cast::TypeName('abc') # 'STRING' -
TypeName example #9
# given: synopsis Data::Object::Cast::TypeName(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".