X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit%2FConfig-Any.git;a=blobdiff_plain;f=lib%2FConfig%2FAny%2FINI.pm;h=68e3f06f8876554025bb4b6362e53f7c395f32f1;hp=1d0575eee6c4b0dc90b2b949575dab2d367ace35;hb=5a2e0210fe5c7da046be37b4240008f2b667be67;hpb=a918b0b8b7952db918dfabb8dc72bf34832d43d0 diff --git a/lib/Config/Any/INI.pm b/lib/Config/Any/INI.pm index 1d0575e..68e3f06 100644 --- a/lib/Config/Any/INI.pm +++ b/lib/Config/Any/INI.pm @@ -45,26 +45,35 @@ sub load { require Config::Tiny; my $config = Config::Tiny->read( $file ); - - my $main = delete $config->{ _ }; - my $out; - $out->{ $_ } = $main->{ $_ } for keys %$main; + my $out = delete $config->{ _ } || {}; for my $k ( keys %$config ) { - my @keys = split /\s+/, $k if $MAP_SECTION_SPACE_TO_NESTED_KEY; + my @keys = split /\s+/, $k; my $ref = $config->{ $k }; - if ( @keys > 1 ) { + if ( $MAP_SECTION_SPACE_TO_NESTED_KEY && @keys > 1 ) { my ( $a, $b ) = @keys[ 0, 1 ]; $out->{ $a }->{ $b } = $ref; } else { - $out->{ $k } = $ref; + $out->{ $k } = { %{ $out->{ $k } || {} }, %$ref }; } } + return $out; } +=head2 is_supported( ) + +Returns true if L is available. + +=cut + +sub is_supported { + eval { require Config::Tiny; }; + return $@ ? 0 : 1; +} + =head1 PACKAGE VARIABLES =over 4