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