|
NAMEClass::Data::ConfigHash - Add Catalyst-Style Config To Your ClassNAMEpackage MyClass; use base qw(Class::Data::ConfigHash); __PACKAGE__->config( foo => 'bar' ); DESCRIPTIONI 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. METHODSconfig([\%hash])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. merge_config_hashes(\%lefthash, \%righthash)Merges the two config hashes.CREDITSSebastian Riedel, Marcus Ramberg, Matt S Trout wrote the code.AUTHORDaisuke Maki "<daisuke@endeworks.jp>" - Stole the code from Catalyst and repackaged itLICENSEThis 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
Visit the GSP FreeBSD Man Page Interface. |