package MyClass; use strict; use base qw(Class::Data::ConfigHash); __PACKAGE__->config( foo => 1, bar => 2); package MySubClass; use base qw(MyClass); package main; use strict; use Test::More (tests => 9); { # Basic access is(MyClass->config->{foo}, 1); is(MyClass->config->{bar}, 2); MyClass->config(foo => 3); is(MyClass->config->{foo}, 3); MyClass->config->{bar} = 4; is(MyClass->config->{bar}, 4); } { # Feed a hashref instead of a hash MyClass->config({ foo => 5, bar => 6 }); is(MyClass->config->{foo}, 5); is(MyClass->config->{bar}, 6); } { # Inheritance at work is( MySubClass->config->{foo}, 5 ); } { # What if you gave a null config my $config = MyClass->config; MyClass->config(undef); is_deeply( $config, MyClass->config ); } { # Complex MyClass->config( foo => { baz => 1 } ); is_deeply( MyClass->config->{foo}, { baz => 1 }); }