Scroll to navigation

Config::Model::ListId(3pm) User Contributed Perl Documentation Config::Model::ListId(3pm)

NAME

Config::Model::ListId - Handle list element for configuration model

VERSION

version 2.133

SYNOPSIS

See "SYNOPSIS" in Config::Model::AnyId

DESCRIPTION

This class provides list elements for a Config::Model::Node.

CONSTRUCTOR

ListId object should not be created directly.

List model declaration

See model declaration section from Config::Model::AnyId.

Methods

get_type

Returns "list".

fetch_size

Returns the number of elements of the list.

load

Parameters: "(string, [ check => 'no' ] )"

Store a set of values passed as a comma separated list of values. Values can be quoted strings. (i.e ""a,a",b" yields "('a,a', 'b')" list).

"check" can be yes, no or skip

store_set

Store a set of values (passed as list)

If tinkering with check is required, use the following way :

 store_set ( \@v , check => 'skip' );

move

Parameters: "( from_index, to_index, [ check => 'no' )"

Move an element within the list. "check" can be 'yes' 'no' 'skip'

push

Parameters: "( value1, [ value2 ... ] )"

push some values at the end of the list.

push_x

Parameters: "( values => [ v1','v2', ...] , ... )"

Like push with extended options. Options are:

check
Check value validaty. Either "yes" (default), "no", "skip"
values
Values to push (array_ref)
value
Single value to push
annotation

unshift

Parameters: "( value1, [ value2 ... ] )"

unshift some values at the end of the list.

insert_at

Parameters: "( idx, value1, [ value2 ... ] )"

unshift some values at index idx in the list.

insert_before

Parameters: "( ( val | qr/stuff/ ) , value1, [ value2 ... ] )"

unshift some values before value equal to "val" or before value matching "stuff".

insort

Parameters: "( value1, [ value2 ... ] )"

Insert "zz" value on "xxx" list so that existing alphanumeric order is preserved. "insort" yields unpexpected results when called on an unsorted list.

store

Equivalent to push_x. This method is provided to help write configuration parser, so the call is the same when dealing with leaf or list values. Prefer "push_x" when practical.
check
"yes", "no" or "skip"
annotation
list ref of annotation to store with the list values

Example:

 $elt->push_x (
    values => [ 'v1','v2' ] ,
    annotation => [ 'v1 comment', 'v2 comment' ],
    check => 'skip'
 );

sort

Sort the content of the list. Can only be called on list of leaf.

swap

Parameters: "( ida , idb )"

Swap 2 elements within the array

remove

Parameters: "( idx )"

Remove an element from the list. Equivalent to "splice @list,$idx,1"

load_data

Parameters: "( data => ( ref | scalar ) [, check => ... ] [ , split_reg => $re ] )"

Clear and load list from data contained in the "data" array ref. If a scalar or a hash ref is passed, the list is cleared and the data is stored in the first element of the list. If split_reg is specified, the scalar is split to load the array.

For instance

   $elt->load_data( data => 'foo,bar', split_reg => qr(,) ) ;

loads " [ 'foo','bar']" in $elt

sort_algorithm

Returns a sub used to sort the list elements. See "sort" in perlfunc. Used only for list of leaves. This method can be overridden to alter sort order.

AUTHOR

Dominique Dumont, (ddumont at cpan dot org)

SEE ALSO

Config::Model::Model, Config::Model::Instance, Config::Model::AnyId, Config::Model::HashId, Config::Model::Value

AUTHOR

Dominique Dumont

COPYRIGHT AND LICENSE

This software is Copyright (c) 2005-2018 by Dominique Dumont.

This is free software, licensed under:

  The GNU Lesser General Public License, Version 2.1, February 1999
2019-01-15 perl v5.28.1