Text::CSV::Encoded::Coder::Base.3pm

Langue: en

Version: 2010-04-26 (ubuntu - 24/10/10)

Section: 3 (Bibliothèques de fonctions)

NAME

Text::CSV::Encoded::Coder::Base - Interface for Text::CSV::Encoded coder base class

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 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.