NAME
Config::Utils - Common config utilities.
SYNOPSIS
use Config::Utils qw(conflict hash hash_array);
conflict($self, $config_hr, $key);
hash($self, $key_ar, $val);
hash_array($self, $key_ar, $val);
SUBOUTINES
conflict
conflict($self, $config_hr, $key);
Check conflicts. Affected variables from $self
:
- set_conflicts - Flag, then control conflicts.
- stack - Reference to array with actual 'C<$key>' key position.
Returns undef or fatal error.
hash
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 'C<$key>' key position.
Returns undef or fatal error.
hash_array
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 'C<$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.
REPOSITORY
https://github.com/michal-josef-spacek/Config-Utils
AUTHOR
Michal Josef Špaček mailto:skim@cpan.org
LICENSE AND COPYRIGHT
© 2011-2022 Michal Josef Špaček
BSD 2-Clause License
VERSION
0.08