X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit%2FConfig-Any.git;a=blobdiff_plain;f=lib%2FConfig%2FAny%2FXML.pm;h=1a36b7b99cd5779095df5a376c22f61e9a998407;hp=c9b979fa37e3d6145f263ed671c6037b70122f24;hb=HEAD;hpb=72628dc786ef43d546023d6f17a86c3f5edeb21a diff --git a/lib/Config/Any/XML.pm b/lib/Config/Any/XML.pm index c9b979f..1a36b7b 100644 --- a/lib/Config/Any/XML.pm +++ b/lib/Config/Any/XML.pm @@ -3,6 +3,8 @@ package Config::Any::XML; use strict; use warnings; +use base 'Config::Any::Base'; + =head1 NAME Config::Any::XML - Load XML config files @@ -55,14 +57,13 @@ sub load { } sub _coerce { - # coerce the XML-parsed config into the correct format my $class = shift; my $config = shift; my $out; for my $k ( keys %$config ) { my $ref = $config->{ $k }; - my $name = ref $ref ? delete $ref->{ name } : undef; + my $name = ref $ref eq 'HASH' ? delete $ref->{ name } : undef; if ( defined $name ) { $out->{ $k }->{ $name } = $ref; } @@ -73,33 +74,42 @@ sub _coerce { $out; } -=head2 is_supported( ) +=head2 requires_all_of( ) -Returns true if L is available. +Specifies that this module requires L and L +in order to work. =cut -sub is_supported { - eval { require XML::Simple; }; - return $@ ? 0 : 1; -} +sub requires_all_of { 'XML::Simple', 'XML::NamespaceSupport' } + +=head1 CAVEATS + +=head2 Strict Mode + +If, by some chance, L has already been loaded with the strict +flag turned on, then you will likely get errors as warnings will become +fatal exceptions and certain arguments to XMLin() will no longer be optional. + +See L for +more information. =head1 AUTHORS -Brian Cassidy Ebricas@cpan.orgE +Brian Cassidy -Joel Bernstein Erataxis@cpan.orgE +Joel Bernstein =head1 COPYRIGHT AND LICENSE -Copyright 2007 by Brian Cassidy +Copyright 2006-2016 by Brian Cassidy This library is free software; you can redistribute it and/or modify -it under the same terms as Perl itself. +it under the same terms as Perl itself. =head1 SEE ALSO -=over 4 +=over 4 =item * L