| Text-CSV-Encoded documentation | Contained in the Text-CSV-Encoded distribution. |
Text::CSV::Encoded::Coder::Encode - Text::CSV::Encoded coder class using Encode
use Text::CSV::Encoded coder_class => 'Text::CSV::Encoded::Coder::Encode'; # In Perl 5.8 or later, it is a default module.
This module is used by Text::CSV::Encoded internally.
Encode, Encode::Supported, Encode::Alias, utf8
Makamaka Hannyaharamitu, <makamaka[at]cpan.org>
Copyright 2008-2010 by Makamaka Hannyaharamitu
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
| Text-CSV-Encoded documentation | Contained in the Text-CSV-Encoded distribution. |
package Text::CSV::Encoded::Coder::Encode; use 5.008; use strict; use warnings; use base qw( Text::CSV::Encoded::Coder::Base ); use Carp (); use Encode (); our $VERSION = '0.04'; my %EncoderCache; sub upgrade { utf8::upgrade( $_[1] ) if ( $_[1] ); } sub encode { my ( $self, $encoding, $str ) = @_; return undef unless defined $str; $self->find_encoding( $encoding )->encode( $str, $self->encode_check_value ); } sub decode { my ( $self, $encoding, $str ) = @_; return undef unless defined $str; $self->find_encoding( $encoding )->decode( $str, $self->decode_check_value ); } sub decode_fields_ref { my ( $self, $encoding, $arrayref ) = @_; my $enc = $self->find_encoding( $encoding ) || return; for ( @$arrayref ) { $_ = $enc->decode( $_, $self->decode_check_value ) if defined $_; } } sub encode_fields_ref { my ( $self, $encoding, $arrayref ) = @_; my $enc = $self->find_encoding( $encoding ) || return; for ( @$arrayref ) { $_ = $enc->encode( $_, $self->encode_check_value ) if defined $_; } } sub find_encoding { shift; $EncoderCache { ($_[0] || 'utf8') } ||= Encode::find_encoding( $_[0] || 'utf8' ) || Carp::croak ( "Not found such an encoding name '$_[0]'" ); } 1; __END__