lots of Config::Any fixes, brought in C::Any testsuite (refactored, partly, from...
[p5sagit/Config-Any.git] / lib / Config / Any / INI.pm
index 092362d..a091ba9 100644 (file)
@@ -43,11 +43,23 @@ sub load {
 \r
     require Config::Tiny;\r
     my $config = Config::Tiny->read( $file );\r
-    my $main   = delete $config->{ _ };\r
-    \r
-    $config->{ $_ } = $main->{ $_ } for keys %$main;\r
 \r
-    return $config;\r
+    my $main   = delete $config->{ _ };\r
+       my $out;\r
+       $out->{$_} = $main->{$_} for keys %$main;\r
+\r
+       for my $k (keys %$config) {\r
+               my @keys = split /\s+/, $k;\r
+               my $ref = $config->{$k};\r
+\r
+               if (@keys > 1) {\r
+                       my ($a, $b) = @keys[0,1];\r
+                       $out->{$a}->{$b} = $ref;\r
+               } else {\r
+                       $out->{$k} = $ref;\r
+               }\r
+       }\r
+    return $out;\r
 }\r
 \r
 =head1 AUTHOR\r
@@ -56,6 +68,8 @@ sub load {
 \r
 =item * Brian Cassidy E<lt>bricas@cpan.orgE<gt>\r
 \r
+=item * Joel Bernstein E<lt>rataxis@cpan.orgE<gt>\r
+\r
 =back\r
 \r
 =head1 COPYRIGHT AND LICENSE\r
@@ -79,4 +93,4 @@ it under the same terms as Perl itself.
 \r
 =cut\r
 \r
-1;
\ No newline at end of file
+1;\r