1 package Module::Build::Config;
7 my ($pack, %args) = @_;
10 values => $args{values} || {},
15 my ($self, $key) = @_;
16 return $self->{values}{$key} if ref($self) && exists $self->{values}{$key};
21 my ($self, $key, $val) = @_;
22 $self->{values}{$key} = $val;
26 my ($self, $key, $val) = @_;
27 push @{$self->{stack}{$key}}, $self->{values}{$key}
28 if exists $self->{values}{$key};
29 $self->{values}{$key} = $val;
33 my ($self, $key) = @_;
35 my $val = delete $self->{values}{$key};
36 if ( exists $self->{stack}{$key} ) {
37 $self->{values}{$key} = pop @{$self->{stack}{$key}};
38 delete $self->{stack}{$key} unless @{$self->{stack}{$key}};
46 return undef unless ref($self);
47 return $self->{values};
52 my $v = ref($self) ? $self->{values} : {};
53 return {%Config, %$v};