NAME
Venus::Kind::Value - Value Base Class
ABSTRACT
Value Base Class for Perl 5
SYNOPSIS
package Example;
use Venus::Class;
base 'Venus::Kind::Value';
sub test {
$_[0]->get + 1
}
package main;
my $example = Example->new(1);
# $example->defined;
DESCRIPTION
This package provides identity and methods common across all Venus value classes.
INHERITS
This package inherits behaviors from:
INTEGRATES
This package integrates behaviors from:
METHODS
This package provides the following methods:
cast
cast(Str $kind) (Object | Undef)
The cast method converts "value" objects between different "value" object types, based on the name of the type provided. This method will return undef
if the invocant is not a Venus::Kind::Value.
Since 0.08
- cast example 1
-
package main; my $example = Example->new; my $cast = $example->cast; # bless({value => undef}, "Venus::Undef")
- cast example 2
-
package main; my $example = Example->new( value => 123.45, ); my $cast = $example->cast('array'); # bless({value => [123.45]}, "Venus::Array")
- cast example 3
-
package main; my $example = Example->new( value => 123.45, ); my $cast = $example->cast('hash'); # bless({value => {'123.45' => 123.45}, "Venus::Hash")
defined
defined() (Int)
The defined method returns truthy or falsy if the underlying value is "defined".
Since 0.01
- defined example 2
-
package main; my $example = Example->new(time); my $defined = $example->defined; # 1
explain
explain() (Any)
The explain method returns the value set and is used in stringification operations.
Since 0.01
- explain example 1
-
package main; my $example = Example->new('hello, there'); my $explain = $example->explain; # "hello, there"
mutate
mutate(Str | CodeRef $code, Any @args) (Object)
The mutate method dispatches the method call or executes the callback and returns the result, which if is of the same type as the invocant's underlying data type will update the object's internal state or will throw an exception.
Since 1.23
- mutate example 1
-
# given: synopsis package main; $example->mutate('test'); $example; # bless({value => 2}, "Example")
AUTHORS
Awncorp, awncorp@cpan.org
LICENSE
Copyright (C) 2000, Al Newkirk.
This program is free software, you can redistribute it and/or modify it under the terms of the Apache license version 2.0.