Data-Recursive-Encode
view release on metacpan or search on metacpan
t/03_recursive.t view on Meta::CPAN
use strict;
use warnings;
use Test::More;
use Data::Recursive::Encode;
use Encode;
# utility functions
sub U($) { decode_utf8($_[0]) }
sub u($) { encode_utf8($_[0]) }
sub E($) { decode('euc-jp', $_[0]) }
sub e($) { encode('euc-jp', $_[0]) }
sub eU($) { e(U($_[0])) }
# -------------------------------------------------------------------------
my $E = sub { Data::Recursive::Encode->encode_utf8(@_) };
my $data = {
'foo' => { key => U('ããã'), qux => 42 }
};
$data->{bar} = $data->{foo};
my $got = Data::Recursive::Encode->encode_utf8($data);
is $got->{bar}->{qux}, 42;
is $got->{bar}->{key}, 'ããã';
$got->{foo}{qux}++;
is $got->{bar}{qux}, 43, 'cyclic refs';
ok !utf8::is_utf8($got->{foo}->{key});
done_testing;
( run in 0.697 second using v1.01-cache-2.11-cpan-5b529ec07f3 )