NAME Dist::Zilla::Util::ConfigDumper - Easy implementation of 'dumpconfig' VERSION version 0.001000 SYNOPSIS ... with 'Dist::Zilla::Role::Plugin'; use Dist::Zilla::Util::ConfigDumper qw( config_dumper ); around dump_config => config_dumper( __PACKAGE__, qw( foo bar baz ) ); FUNCTIONS "config_dumper" config_dumper( __PACKAGE__, qw( method list ) ); Returns a function suitable for use with "around dump_config". my $sub = config_dumper( __PACKAGE__, qw( method list ) ); around dump_config => $sub; Or around dump_config => sub { my ( $orig, $self, @args ) = @_; return config_dumper(__PACKAGE__, qw( method list ))->( $orig, $self, @args ); }; Either way: my $function = config_dumper( $package_name_for_config, qw( methods to call on $self )); my $hash = $function->( $function_that_returns_a_hash, $instance_to_call_methods_on, @somethinggoeshere ); =~ All of this approximates: around dump_config => sub { my ( $orig , $self , @args ) = @_; my $conf = $self->$orig( @args ); my $payload = {}; for my $method ( @methods ) { try { $payload->{ $method } = $self->$method(); }; } $config->{+__PACKAGE__} = $payload; } Except with some extra "things dun goofed" handling. AUTHOR Kent Fredric COPYRIGHT AND LICENSE This software is copyright (c) 2014 by Kent Fredric . This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.