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.
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