PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB` package ExtUtils::Config; $ExtUtils::Config::VERSION = '0.010'; use strict; use warnings; use Config; sub new { my ($pack, $args) = @_; return bless { values => ($args ? { %$args } : {}), }, $pack; } sub get { my ($self, $key) = @_; return exists $self->{values}{$key} ? $self->{values}{$key} : $Config{$key}; } sub exists { my ($self, $key) = @_; return exists $self->{values}{$key} || exists $Config{$key}; } sub values_set { my $self = shift; return { %{$self->{values}} }; } sub all_config { my $self = shift; return { %Config, %{ $self->{values}} }; } sub serialize { my $self = shift; require Data::Dumper; return $self->{serialized} ||= Data::Dumper->new([ $self->{values} ])->Terse(1)->Sortkeys(1)->Dump; } sub but { my ($self, $args) = @_; my %new = %{ $self->{values} }; for my $key (keys %$args) { if (defined $args->{$key}) { $new{$key} = $args->{$key} } else { delete $new{$key}; } } return bless { values => \%new }, ref $self; } 1; # ABSTRACT: A wrapper for perl's configuration __END__ =pod =encoding UTF-8 =head1 NAME ExtUtils::Config - A wrapper for perl's configuration =head1 VERSION version 0.010 =head1 SYNOPSIS my $config = ExtUtils::Config->new(); $config->get('installsitelib'); =head1 DESCRIPTION ExtUtils::Config is an abstraction around the %Config hash. By itself it is not a particularly interesting module by any measure, however it ties together a family of modern toolchain modules. =head1 METHODS =head2 new(\%config) Create a new ExtUtils::Config object. The values in C<\%config> are used to initialize the object. =head2 get($key) Get the value of C<$key>. If not overridden it will return the value in %Config. =head2 exists($key) Tests for the existence of $key. =head2 but(\%keys) This creates a new C object based on the current one, but with the values in %keys replacing the current values. Any undefined value means it will be removed from the overriden set. =head2 values_set() Get a hashref of all overridden values. =head2 all_config() Get a hashref of the complete configuration, including overrides. =head2 serialize() This method serializes the object to some kind of string. This can be useful for various caching purposes. =head1 SEE ALSO =over 4 =item * L =item * L =item * L =item * L =item * L =item * L =item * L =back =head1 AUTHORS =over 4 =item * Ken Williams =item * Leon Timmermans =back =head1 COPYRIGHT AND LICENSE This software is copyright (c) 2006 by Ken Williams, Leon Timmermans. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. =cut