NAME
Deep::Encode - Bulk encoding and decoding.
SYNOPSIS
use Deep::Encode;
my $s = [ 1, 2, "string in cp1251 encoding" ];
# convert to utf8 encoding from cp1251
deep_from_to( $s, "cp1251", "utf8" );
deep_utf8_encode( $s ) ; # call utf8::encode on every string in $s
deep_utf8_decode( $s ) ; # call utf8::decode on every string in $s
deep_encode( $s, $encoding ); # call Encode::encode for every string scalar in
deep_decode( $s, $encoding ); # call Encode::decode for every string scalar in
# utf8 string validity on entire data
if ( deep_utf8_check( $s ) ){
deep_utf8_decode( $s );
}
else {
croak( "Data not in utf8 encoding" );
}
DESCRIPTION
This module allow apply Encode::from_to, utf8::decode, utf8::encode and etc on every string scalar in array or hash recursively =head1 FUNCTIONS
- deep_from_to( $s, $from, $to )
- deep_utf8_decode( $s )
- deep_utf8_encode( $s )
- deep_encode( $s, $encoding ); # call Encode::encode on every string scalar in
- deep_decode( $s, $encoding ); # call Encode::decode on every string scalar in
- deep_utf8_off( $s ); # check off utf8 flag. return number applied items.
- deep_utf8_upgrade( $s ); # Make same as Encode::upgrade for all strings in $s. return number applied items.
- deep_utf8_downgrade( $s ); # Make same as Encode::downgrade for all strings in $s. return number applied items.
- deep_utf8_check( $s ); # return true if all string can be properly decode from utf8
BUGS and TODO
For now this module can't handle self referrenced structures. This module does not handle hash keys, but values it does. Do benchmark.
SEE ALSO
Encode, utf8, Data::Recursive::Encode (pure perl implementation)
AUTHOR
A.G. Grishaev, E<lt>grian@cpan.orgE<gt>
COPYRIGHT AND LICENSE
Copyright (C) 2016 by A.G. Grishaev.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.10.1 or, at your option, any later version of Perl 5 you may have available.