The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

MooX::ConfigFromFile::Role::HashMergeLoaded - allows better merge strategies for multiple config files

SYNOPSIS

package MyApp::Cmd::TPau;

use DBI;
use Moo;
use MooX::Cmd with_configfromfile => 1;

with "MooX::ConfigFromFile::Role::HashMergeLoaded";

has csv => (is => "ro", required => 1);

sub execute
{
    my $self = shift;
    DBI->connect("DBI::csv:", undef, undef, $self->csv);
}

__END__
$ cat etc/myapp.json
{
  "csv": {
    "f_ext": ".csv/r",
    "csv_sep_char": ";",
    "csv_class": "Text::CSV_XS"
  }
}
$cat etc/myapp-tpau.json
{
  "csv": {
    "f_dir": "data/tpau"
  }
}

DESCRIPTION

This is an additional role for MooX::ConfigFromFile to allow better merging of deep structures.

ATTRIBUTES

config_merge_behavior

This attribute contains the behavior which will config_merger use to merge particular loaded configurations.

config_merger

This attribute contains the instance of Hash::Merge used to merge the raw_loaded_config into loaded_config.

loaded_config

This role modifies the builder for loaded_config by merging the items from raw_loaded_config in order of appearance. It is assumed that more relevant config files are in front and are filled up with defaults in following ones.

AUTHOR

Jens Rehsack, <rehsack at cpan.org>

ACKNOWLEDGEMENTS

LICENSE AND COPYRIGHT

Copyright 2015-2018 Jens Rehsack.

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.