SYNOPSIS

In your program:

  use Data::Printer filters => {
    -external => [ 'Digest' ],
  };

or, in your \*(C`.dataprinter\*(C' file:

{ filters => { -external => [ 'Digest' ], }, };

You can also setup color and display details:

use Data::Printer filters => { -external => [ 'Digest' ], }, color => { digest => 'bright_green', } digest => { show_class_name => 0, # default. show_reset => 1, # default. }, };

DESCRIPTION

This is a filter plugin for Data::Printer. It filters through several digest classes and displays their current value in hexadecimal format as a string.

Parsed Modules

  • Digest::Adler32

  • Digest::MD2

  • Digest::MD4

  • Digest::MD5

  • Digest::SHA

  • Digest::SHA1

  • Digest::Whirlpool

  • Digest::Haval256

If you have any suggestions for more modules or better output, please let us know.

Extra Options

Aside from the display color, there are a few other options to be customized via the \*(C`digest\*(C' option key:

show_class_name

Set this to true to display the class name right next to the hexadecimal digest. Default is 0 (false).

show_reset

If set to true (the default), the filter will add a \*(C`[reset]\*(C' tag after dumping an empty digest object. See the rationale below.

Note on dumping Digest::* objects

The digest operation is effectively a destructive, read-once operation. Once it has been performed, most Digest::* objects are automatically reset and can be used to calculate another digest value.

This behaviour - or, rather, forgetting about this behaviour - is a common source of issues when working with Digests.

This Data::Printer filter will not destroy your object. Instead, we work on a cloned version to display the hexdigest, leaving your original object untouched.

As another debugging convenience for developers, since the empty object will produce a digest even after being used, this filter adds by default a \*(C`[reset]\*(C' tag to indicate that the object is empty, in a 'reset' state - i.e. its hexdigest is the same as the hexdigest of a new, empty object of that same class.

RELATED TO Data::Printer::Filter::Digest…

Data::Printer