NAME

Hub::Data::Handlers - Nested data handlers

Part of the Hub Library

SYNOPSIS

use Hub qw(:standard);
my $h = {};
hsetv( $h, "/user1/fname",  "Steve" );
hsetv( $h, "/user2/fname",  "Mandy" );

DESCRIPTION

See also hubaddr

METHODS

happendv hgetv hsetv htakev
happendv

Hash Append Value

Usage: happendv \HASH, $ADDRESS, VALUE, OPTIONS*

Append to an existing value and return like hgetv.

OPTIONS:

-asa=1      Force value as array (transforms existing scalars.)
hgetv

Hash Get Value

Usage: hgetv \%HASH, $ADDRESS, [OPTIONS]
Usage: hgetv \%HASH, \@ADDRESSES, [OPTIONS]

In its first form, hgetv will return the value specified by $ADDRESS.

In its second form, an array of values is returned for each @ADDRESS. In scalar context the array is returned as a reference.

OPTIONS:

-sdref=0    Do *not* de-reference scalar values.
hsetv

Hash Set Value

Usage: hsetv \%HASH, $ADDRESS, $VALUE
Usage: hsetv \%HASH, \%ADDRESS

In its first form, VALUE is set in \%HASH at $ADDRESS.

In its second form, \%ADDRESS is presumed to be ADDRESS/VALUE pairs, and each is set in turn.

htakev

Hash Take Value

Usage: htakev \%HASH, $ADDRESS
Usage: htakev \%HASH, \@ADDRESSES

Remove and return the value (like hgetv.)

In its second form, the removed values are returned as an array reference.

INTERNAL

_appendvasa _hqueryv _hseekv _hselectv _lookup
_appendvasa

Append value as array.

Usage: _appendvasa \%HASH, $ADDRESS, $VALUE

Append value onto the array at $key. If the value at $key exists as a scalar, transform it into an ARRAY, whos first element is its current value.

_hqueryv

Hash Query Value

Usage: _hqueryv \%HASH, $ADDRESS, [OPTIONS]

This method returns all resulting records in \HASH specified by $ADDRESS.

OPTIONS:

-av     Autovivify (contstucts necessary segments)
_hseekv

Hash Seek Value (Seek to the specified address)

Usage: _hseekv \%HASH, $ADDRESS, [OPTIONS]

OPTIONS:

-av     Autovivify (contstucts necessary segments)

This is an optimization and as such $ADDRESS may *not* contain selectors.

Autovivification will return a SCALAR reference on nodes which are unkown.

Such that calling:

my $c = _hseekv( \%hash, '/a/b/c', '-av' );

May become an array by subsequently:

@$$c = qw/fourteen hair/;

And seeking again will return an ARRAY reference:

my $c2 = _hseekv( \%hash, '/a/b/c' );

Such that:

push @$c2, 'dryers';
_hselectv

Hash Select Value

Usage: _hselectv \%HASH, \%ROOT_HASH, $SELECTOR, [OPTIONS]

This method interprets SELECTOR and returns the matching record(s).

Where:

\%HASH          Look for SELECTOR in this hash
\%ROOT_HASH     Used when SELECTOR contains a reference
$SELECTOR       The select clause

OPTIONS:

-av             Autovivify (contstucts necessary segments)
_lookup

Lookup array item (must be a hash) by member value.

Usage: _lookup \@ARRAY, $VALUE, [OPTIONS]

OPTIONS:

Name        Type        Default                 Description
----------- ----------- ----------------------- ----------------------------
-by         \@ARRAY     \['_id','id','name']    Fields to search by
-cmp        eq|ne|...   eq                      Comparator
-asindex    0|1         0                       Return the array index(s)
-first      0|1         1                       Return first match

VALUE:

Regarless of the '-by' option, if value is formatted as: \[\d\], then it
is considered an index into the array.

AUTHOR

Ryan Gies

COPYRIGHT

Copyright (c) 2006 Livesite Networks, LLC. All rights reserved.

Copyright (c) 2000-2005 Ryan Gies. All rights reserved.

UPDATED

This file created by mkdocs.pl on 8/29/2006 at 2:07pm