Scroll to navigation

Data::Printer::Filter::Digest(3pm) User Contributed Perl Documentation Data::Printer::Filter::Digest(3pm)
 

NAME

Data::Printer::Filter::Digest - pretty-printing MD5, SHA and friends

SYNOPSIS

In your program:
  use Data::Printer filters => {
    -external => [ 'Digest' ],
  };
or, in your ".dataprinter" 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 "digest" 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 "[reset]" 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 "[reset]" 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.

SEE ALSO

Data::Printer
2012-11-10 perl v5.14.2