---
name: "MARC::Charset::Table"
section: "3pm"
platform: "linux"
package: "libmarc-charset-perl"
version: "1.35-4"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/MARC::Charset::Table"
---

# MARC::Charset::Table(3pm)

character mapping db

## NAME

MARC::Charset::Table - character mapping db

## SYNOPSIS

```
    use MARC::Charset::Table;
    use MARC::Charset::Constants qw(:all);
    # create the table object
    my $table = MARC::Charset::Table->new();

    # get a code using the marc8 character set code and the character
    my $code = $table->lookup_by_marc8(CYRILLIC_BASIC, 'K');
    # get a code using the utf8 value
    $code = $table->lookup_by_utf8(chr(0x043A));
```

## DESCRIPTION

MARC::Charset::Table is a wrapper around the character mapping database,  which is implemented as a tied hash on disk. This database gets generated  by Makefile.PL on installation of MARC::Charset using  MARC::Charset::Compiler.

The database is essentially a key/value mapping where a key is a  MARC-8 character set code + a MARC-8 character, or an integer representing the UCS code point. These keys map to a serialized MARC::Charset::Code object.

### new()

The consturctor.

### add\_code()

Add a MARC::Charset::Code to the table.

### get\_code()

Retrieve a code using a hash key.

### lookup\_by\_marc8()

Looks up MARC::Charset::Code entry using a character set code and a MARC-8  value.

```
    use MARC::Charset::Constants qw(HEBREW);
    $code = $table->lookup_by_marc8(HEBREW, chr(0x60));
```

### lookup\_by\_utf8()

Looks up a MARC::Charset::Code object using a utf8 value.

### db()

Returns a reference to a tied character database. MARC::Charset::Table wraps access to the db, but you can get at it if you want.

### db\_path()

Returns the path to the character encoding database. Can be called  statically too:

```
    print MARC::Charset::Table->db_path();
```

### brand\_new()

An alternate constructor which removes the existing database and starts afresh. Be careful with this one, it's really only used on MARC::Charset installation.
