| Config-Any documentation | Contained in the Config-Any distribution. |
Config::Any::INI - Load INI config files
Loads INI files. Example:
name=TestApp
[Controller::Foo]
foo=bar
[Model::Baz]
qux=xyzzy
return an array of valid extensions (ini).
Attempts to load $file as an INI file.
Specifies that this module requires Config::Tiny in order to work.
This variable controls whether spaces in INI section headings will be expanded into nested hash keys. e.g. it controls whether [Full Power] maps to $config->{'Full Power'} or $config->{'Full'}->{'Power'}
By default it is set to 1 (i.e. true).
Set it to 0 to preserve literal spaces in section headings:
use Config::Any;
use Config::Any::INI;
$Config::Any::INI::MAP_SECTION_SPACE_TO_NESTED_KEY = 0;
Brian Cassidy <bricas@cpan.org>
Joel Bernstein <rataxis@cpan.org>
Copyright 2006-2011 by Brian Cassidy, portions copyright 2006, 2007 by Joel Bernstein
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
| Config-Any documentation | Contained in the Config-Any distribution. |
package Config::Any::INI; use strict; use warnings; use base 'Config::Any::Base'; our $MAP_SECTION_SPACE_TO_NESTED_KEY = 1;
sub extensions { return qw( ini ); }
sub load { my $class = shift; my $file = shift; require Config::Tiny; my $config = Config::Tiny->read( $file ); die $Config::Tiny::errstr if not defined $config; my $out = delete $config->{ _ } || {}; for my $k ( keys %$config ) { my @keys = split /\s+/, $k; my $ref = $config->{ $k }; if ( $MAP_SECTION_SPACE_TO_NESTED_KEY && @keys > 1 ) { my ( $a, $b ) = @keys[ 0, 1 ]; $out->{ $a }->{ $b } = $ref; } else { $out->{ $k } = { %{ $out->{ $k } || {} }, %$ref }; } } return $out; }
sub requires_all_of { 'Config::Tiny' }
1;