The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

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