NAME
MCE::Shared::Scalar - Scalar helper class
VERSION
This document describes MCE::Shared::Scalar version 1.007
SYNOPSIS
# non-shared
use MCE::Shared::Scalar;
my $var = MCE::Shared::Scalar->new( $val );
# shared
use MCE::Shared;
my $var = MCE::Shared->scalar( $val );
# oo interface
$val = $var->set( $val );
$val = $var->get();
$len = $var->len();
# sugar methods without having to call set/get explicitly
$val = $var->append( $string ); # $val .= $string
$val = $var->decr(); # --$val
$val = $var->decrby( $number ); # $val -= $number
$val = $var->getdecr(); # $val--
$val = $var->getincr(); # $val++
$val = $var->incr(); # ++$val
$val = $var->incrby( $number ); # $val += $number
$old = $var->getset( $new ); # $o = $v, $v = $n, $o
DESCRIPTION
Helper class for MCE::Shared.
API DOCUMENTATION
This module may involve TIE when accessing the object via scalar dereferencing. Only shared instances are impacted if doing so. Although likely fast enough for many use cases, use the OO interface if better performance is desired.
- new ( [ value ] )
-
Constructs a new object. Its value is undefined when
value
is not specified.# non-shared use MCE::Shared::Scalar; $var = MCE::Shared::Scalar->new( "foo" ); $var = MCE::Shared::Scalar->new; # shared use MCE::Shared; $var = MCE::Shared->scalar( "bar" ); $var = MCE::Shared->scalar;
- set ( value )
-
Preferably, set the value via the OO interface. Otherwise,
TIE
is activated on-demand for setting the value. The new value is returned in scalar context.$val = $var->set( "baz" ); $var->set( "baz" ); ${$var} = "baz";
- get
-
Likewise, obtain the value via the OO interface.
TIE
is utilized for retrieving the value otherwise.$val = $var->get; $val = ${$var};
- len
-
Returns the length of the value. It returns the
undef
value if the value is not defined.$len = $var->len; length ${$var};
SUGAR METHODS
This module is equipped with sugar methods to not have to call set
and get
explicitly. The API resembles a subset of the Redis primitives http://redis.io/commands#strings without the key argument.
- append ( value )
-
Appends a value at the end of the current value and returns its new length.
$len = $var->append( "foo" );
- decr
-
Decrements the value by one and returns its new value.
$num = $var->decr;
- decrby ( number )
-
Decrements the value by the given number and returns its new value.
$num = $var->decrby( 2 );
- getdecr
-
Decrements the value by one and returns its old value.
$old = $var->getdecr;
- getincr
-
Increments the value by one and returns its old value.
$old = $var->getincr;
- getset ( value )
-
Sets the value and returns its old value.
$old = $var->getset( "baz" );
- incr
-
Increments the value by one and returns its new value.
$num = $var->incr;
- incrby ( number )
-
Increments the value by the given number and returns its new value.
$num = $var->incrby( 2 );
CREDITS
The implementation is inspired by Tie::StdScalar.
INDEX
AUTHOR
Mario E. Roy, <marioeroy AT gmail DOT com>