NAME
Text::CSV::Encoded::Coder::Base - Interface for Text::CSV::Encoded coder base class
VERSION
version 0.25
SYNOPSIS
package Text::CSV::Encoded::Coder::YourCoder;use base qw( Text::CSV::Encoded::Coder::Base );sub decode {...}sub encode {...}sub upgrade {...}sub decode_fields_ref {...}sub encode_fields_ref {...}
DESCRIPTION
This module is used by Text::CSV::Encoded internally.
INTERFACS
decode
( $self, $encoding, $str ) = @_;....return $decoded_str;
Takes an encoding and a CSV string. It must return a Perl string decoded in $encoding. In Perl 5.8 or later, if $enc is "undef" or false, the encoding should be utf8.
encode
( $self, $encoding, $str ) = @_;....return $encoded_str;
Takes an encoding and a Perl string. It must return a CSV string encoded in $encoding. In Perl 5.8 or later, if $enc is "undef" or false, the encoding should be utf8.
decode_fields_ref
( $self, $encoding, $arrayref ) = @_;
Takes an encoding and an array reference. It must decoded each array entries in $encoding.
encode_fields_ref
( $self, $encoding, $arrayref ) = @_;
Takes an encoding and an array reference. It must encoded each array entries in $encoding.
upgrade
( $self, $str ) = @_;
In Perl 5.8 or later, it is expected to do "utf8::upgrade" against $str. In older versions, this method may be meaningless and there is no need to implement. See to utf8.
encode_check_value
Setter/Getter for an argument passing to encode.
$coder->encode_check_value( Encode::FB_PERLQQ );
decode_check_value
Setter/Getter for an argument passing to decode.
$coder->encode_check_value( Encode::FB_PERLQQ );
EXAMPLE
Use with Jcode.
package Text::CSV::Encoded::Coder::Jcode;use strict;use base qw( Text::CSV::Encoded::Coder::Base );use Jcode ();my $Jcode = Jcode->new;my %alias = ('shiftjis' => 'sjis','euc-jp' => 'euc','sjis' => 'sjis','euc' => 'euc',);sub decode {my ( $self, $encoding, $str ) = @_;my $enc = $alias{ $encoding };$Jcode->set( $str, $enc )->euc;}sub encode {my ( $self, $encoding, $str ) = @_;my $enc = $alias{ $encoding };$Jcode->set( $str, 'euc' )->$enc();}sub decode_fields_ref {my ( $self, $encoding, $arrayref ) = @_;my $enc = $alias{ $encoding };for ( @$arrayref ) {$_ = $Jcode->set( $_, $enc )->euc;}}sub encode_fields_ref {my ( $self, $encoding, $arrayref ) = @_;my $enc = $alias{ $encoding };for ( @$arrayref ) {$_ = $Jcode->set( $_, 'euc' )->$enc();}}
AUTHOR
Makamaka Hannyaharamitu, <makamaka[at]cpan.org>
COPYRIGHT AND LICENSE
Copyright 2008-2013 by Makamaka Hannyaharamitu
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.