---
name: "Text::CSV::Encoded::Coder::Base"
section: "3pm"
platform: "linux"
package: "libtext-csv-encoded-perl"
version: "0.25-4"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Text::CSV::Encoded::Coder::Base"
---

# Text::CSV::Encoded::Coder::Base(3pm)

Interface for Text::CSV::Encoded coder base class

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