NAME

Data::Dumper::AutoEncode - Dump with recursive encoding

SYNOPSIS

use utf8;
use Data::Dumper::AutoEncode;

eDumper(+{ foo => 'おでん' })

DESCRIPTION

Data::Dumper::AutoEncode stringifies perl data structures including unicode string to human-readable.

example:

use utf8;
use Data::Dumper;

my $foo = +{ foo => 'おでん' };

print Dumper($foo);

It will dump like this

{ foo => "\x{304a}\x{3067}\x{3093}" }

This is not human-readable.

Data::Dumper::AutoEncode exports `eDumper` function. You can use it.

use utf8;
use Data::Dumper::AutoEncode;

my $foo = +{ foo => 'おでん' };

print eDumper($foo);
# { foo => "おでん" }

Also `Dumper` function is exported from Data::Dumper::AutoEncode. It is same as Data::Dumper::Dumper

METHOD

By default, both functions eDumper and Dumper will be exported.

eDumper(LIST)

Dump with recursive encoding(default: utf8)

If you want to encode other encoding, set encoding to $Data::Dumper::AutoEncode::ENCODING.

$Data::Dumper::AutoEncode::ENCODING = 'CP932';
Dumper(LIST)

Same as the Dumper function of Data::Dumper. However, if you specify an import option -dumper, then the Dumper function will work as same as eDumper function. Please see IMPORT OPTIONS section for more details.

encode($encoding, $stuff)

Just encode stuff.

IMPORT OPTIONS

You can specify an import option to override Dumper function.

use Data::Dumper::AutoEncode '-dumper';

It means Dumper function is overrided as same as eDumper.

GLOBAL VARIABLE OPTIONS

ENCODING : utf8

Set this option if you need another encoding;

BEFORE_HOOK / AFTER_HOOK

Set code ref for hooks which excuted around encoding

$Data::Dumper::AutoEncode::BEFORE_HOOK = sub {
    my $value = $_[0]; # decoded
    $value =~ s/\x{2019}/'/g;
    return $value;
};

$Data::Dumper::AutoEncode::AFTER_HOOK = sub {
    my $value = $_[0]; # encoded
    // do something
    return $value;
};

CHECK_ALREADY_ENCODED : false

If you set this option true value, check a target before encoding. And do encode in case of decoded value.

DO_NOT_PROCESS_NUMERIC_VALUE : true

By default, numeric values are ignored (do nothing).

FLAG_STR

Additional string (prefix) for encoded values.

HOW TO SET CONFIGURATION VARIABLES TO DUMP

This Data::Dumper::AutoEncode is using Data::Dumper internally. So, you can set configuration variables to dump as the variables of Data::Dumper, like below.

use Data::Dumper::AutoEncode;

local $Data::Dumper::Indent   = 2;
local $Data::Dumper::Sortkeys = 1;
local $Data::Dumper::Deparse  = 1;

say eDumper($hash);

REPOSITORY

Data::Dumper::AutoEncode is hosted on github http://github.com/bayashi/Data-Dumper-AutoEncode

AUTHOR

Dai Okabayashi <bayashi@cpan.org>

SEE ALSO

Data::Dumper

THANKS

gfx

tomyhero

LICENSE

This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic.