Class::Data::ConfigHash - Add Catalyst-Style Config To Your Class
package MyClass; use base qw(Class::Data::ConfigHash); __PACKAGE__->config( foo => 'bar' );
I often times find myself wanting a per-class config that can be used to provide sane class-level defaults, but with the ability to easily customize the values at run time.
package MyClass; __PACKAGE__->config({ foo => 1, bar => 2 }); # Later, in perhaps an initialize hook somewhere my %config = read_config_from_file() ; # say, %config = ( foo => 3 ) MyClass->config(\%config); MyClass->config->{foo}; # yields 3 MyClass->config->{bar}; # yields 2
The idea is that you can hardcode the defaults in your class, but you can also easily override them by merging the original hash with a newly given hash. This feature is handled beautifully in Catalyst.
So there, this module is basically that feature from Catalyst ripped out to a separate module so it can be used elsewhere.
To use, simply subclass it in your module:
package MyClass; use base qw(Class::Data::ConfigHash);
Done! Now you can use ->config in MyClass.
Accessor for the underlying config.
# set $class->config(\%hash); $class->config->{whatever} = 'foo'; # get $class->config->{whatever};
If given a hashref argument, the values in the hashref are merged with whatever values that existed prior to that. This merge is performed recursively to the entire hash.
Merges the two config hashes.
Sebastian Riedel, Marcus Ramberg, Matt S Trout wrote the code.
Daisuke Maki <daisuke@endeworks.jp> - Stole the code from Catalyst and repackaged it
<daisuke@endeworks.jp>
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
See http://www.perl.com/perl/misc/Artistic.html
To install Class::Data::ConfigHash, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Class::Data::ConfigHash
CPAN shell
perl -MCPAN -e shell install Class::Data::ConfigHash
For more information on module installation, please visit the detailed CPAN module installation guide.