NAME
Data::Dump::Partial - Dump data structure compactly and potentially partially
VERSION
version 0.03
SYNOPSIS
use Data::Dump::Partial qw(dump_partial dumpp);
dump_partial([1, "some long string", 3, 4, 5, 6, 7]);
# prints something like: [1, "some long st...", 3, 4, 5, ...]
# specify options
dump_partial($data, $more_data, {max_total_len => 50, max_keys => 4});
DESCRIPTION
FUNCTIONS
dump_partial(..., $opts)
Dump one more data structures compactly and potentially partially. Uses Data::Dump::Filtered as the backend. By compactly, it means all indents and comments and newlines are removed, so the output all fits in one line. By partially, it means only a certain number of scalar length, array elements, hash keys are showed.
$opts is a hashref, optional only when there is one data to dump, with the following known keys:
max_total_len => NUM
Total length of output before it gets truncated with an ellipsis. Default is 80.
max_len => NUM
Maximum length of a scalar (string, etc) to show before the rest get truncated with an ellipsis. Default is 32.
max_keys => NUM
Number of key pairs of a hash to show before the rest get truncated with an ellipsis. Default is 5.
max_elems => NUM
Number of elements of an array to show before the rest get truncated with an ellipsis. Default is 5.
precious_keys => [KEY, ...]
Never truncate these keys (even if it results in max_keys limit being exceeded).
worthless_keys => [KEY, ...]
When needing to truncate hash keys, search for these first.
hide_keys => [KEY, ...]
Always truncate these hash keys, no matter what. This is actually also implemented by Data::Dump::Filtered.
mask_keys_regex => REGEX
When encountering keys that match certain regex, mask it with '***'. This can be useful if you want to mask passwords, e.g.: mask_keys_regex => qr/\Apass\z|passw(or)?d/i. If you want more general masking, you can use pair_filter.
pair_filter => CODE
CODE will be called for each hash key/value pair encountered in the data. It will be given ($key, $value) as argument and is expected to return a list of one or more of keys and values. The example below implements something similar to what mask_keys_regex accomplishes:
# mask each password character with '*' hash_pair_filter => sub { my ($k, $v) = @_; if ($k =~ /\Apass\z|passw(or)?d/i) { $v =~ s/./*/g; } ($k, $v); }
dd_filter => \&sub
If you have other Data::Dump::Filtered filter you want to execute, you can pass it here.
dumpp
An alias for dump_filtered().
FAQ
What is the point/purpose of this module?
Sometimes you want to dump a data structure, but need it to be short, more than need it to be complete, for example when logging to log files or database.
Is the dump result eval()-able? Will the dump result eval() to produce the original data?
Sometimes it is/will, sometimes it does/will not if it gets truncated.
SEE ALSO
AUTHOR
Steven Haryanto <stevenharyanto@gmail.com>
COPYRIGHT AND LICENSE
This software is copyright (c) 2010 by Steven Haryanto.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.