NAME Config::Utils - Common config utilities. SYNOPSIS use Config::Utils qw(conflict hash hash_array); conflict($self, {'key' => 1}, 'key'); hash($self, ['one', 'two'], $val); hash_array($self, ['one', 'two'], $val); SUBOUTINES "conflict($self, $config_hr, $key)" Check conflicts. Affected variables from $self: - set_conflicts - Flag, then control conflicts. - stack - Reference to array with actual '$key' key position. Returns undef or fatal error. "hash($self, $key_ar, $val)" Create record to hash. Affected variables from $self: - config - Actual configuration in hash reference. - set_conflicts - Flag, then control conflicts. - stack - Reference to array with actual '$key' key position. Returns undef or fatal error. "hash_array($self, $key_ar, $val)" Create record to hash. If exists more value record for one key, then create array of values. Affected variables from $self: - config - Actual configuration in hash reference. - set_conflicts - Flag, then control conflicts. - stack - Reference to array with actual '$key' key position. Returns undef or fatal error. ERRORS conflict(): Conflict in '%s'. hash(): Conflict in '%s'. hash_array(): Conflict in '%s'. EXAMPLE1 use strict; use warnings; use Config::Utils qw(conflict); # Object. my $self = { 'set_conflicts' => 1, 'stack' => [], }; # Conflict. conflict($self, {'key' => 'value'}, 'key'); # Output: # ERROR: Conflict in 'key'. EXAMPLE2 use strict; use warnings; use Config::Utils qw(hash); use Dumpvalue; # Object. my $self = { 'config' => {}, 'set_conflicts' => 1, 'stack' => [], }; # Add records. hash($self, ['foo', 'baz1'], 'bar'); hash($self, ['foo', 'baz2'], 'bar'); # Dump. my $dump = Dumpvalue->new; $dump->dumpValues($self); # Output: # 0 HASH(0x955f3c8) # 'config' => HASH(0x955f418) # 'foo' => HASH(0x955f308) # 'baz1' => 'bar' # 'baz2' => 'bar' # 'set_conflicts' => 1 # 'stack' => ARRAY(0x955cc38) # empty array EXAMPLE3 use strict; use warnings; use Config::Utils qw(hash_array); use Dumpvalue; # Object. my $self = { 'config' => {}, 'set_conflicts' => 1, 'stack' => [], }; # Add records. hash_array($self, ['foo', 'baz'], 'bar'); hash_array($self, ['foo', 'baz'], 'bar'); # Dump. my $dump = Dumpvalue->new; $dump->dumpValues($self); # Output: # 0 HASH(0x8edf890) # 'config' => HASH(0x8edf850) # 'foo' => HASH(0x8edf840) # 'baz' => ARRAY(0x8edf6d0) # 0 'bar' # 1 'bar' # 'set_conflicts' => 1 # 'stack' => ARRAY(0x8edf6e0) # empty array EXAMPLE4 use strict; use warnings; use Config::Utils qw(hash_array); use Dumpvalue; # Object. my $self = { 'callback' => sub { my ($key_ar, $value) = @_; return uc($value); }, 'config' => {}, 'set_conflicts' => 1, 'stack' => [], }; # Add records. hash_array($self, ['foo', 'baz'], 'bar'); hash_array($self, ['foo', 'baz'], 'bar'); # Dump. my $dump = Dumpvalue->new; $dump->dumpValues($self); # Output: # 0 HASH(0x8edf890) # 'callback' => CODE(0x8405c40) # -> &CODE(0x8405c40) in ??? # 'config' => HASH(0x8edf850) # 'foo' => HASH(0x8edf840) # 'baz' => ARRAY(0x8edf6d0) # 0 'BAR' # 1 'BAR' # 'set_conflicts' => 1 # 'stack' => ARRAY(0x8edf6e0) # empty array DEPENDENCIES Error::Pure, Exporter, Readonly. SEE ALSO Config::Dot Module for simple configure file parsing. Config::Dot::Array Module for simple configure file parsing with arrays. AUTHOR Michal Josef Špaček LICENSE AND COPYRIGHT © Michal Josef Špaček 2011-2020 BSD 2-Clause License VERSION 0.07