Test::Deep::Filter This module exists so that one can apply some kind of transform of the content of some node, before applying a deep testing structure against it. This is especially the kind of domain Test::Deep::YAML and Test::Deep::JSON are targeted at, but implemented in a more generic way. cmp_deeply( $got, { payload => filter(\&decode_json, { x => 1 }) } ) This would perform matching against a "Perl" data structure called $got, and find its key called "payload", and, if existing, filter the key via &decode_json, and then compare the resulting structure with "{ x => 1 }". This would in theory be equivalent to: cmp_deeply( $got, { payload => json({ x => 1 }) } ) Except may be tailored for what ever local decoding scheme you may require, e.g.: cmp_deeply( $got, { payload => filter(sub { my ( $got ) = @_; return parse_ini( $got ); }, { x => 1 }) }); INSTALLATION This is a Perl module distribution. It should be installed with whichever tool you use to manage your installation of Perl, e.g. any of cpanm . cpan . cpanp -i . Consult http://www.cpan.org/modules/INSTALL.html for further instruction. Should you wish to install this module manually, the procedure is perl Makefile.PL make make test make install COPYRIGHT AND LICENSE This software is copyright (c) 2015 by Kent Fredric <kentfredric@gmail.com>. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.