---
name: "Data::TableReader::Decoder"
section: "3pm"
platform: "linux"
package: "libdata-tablereader-perl"
version: "0.021-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Data::TableReader::Decoder"
---

# Data::TableReader::Decoder(3pm)

Base class for table decoders

## NAME

Data::TableReader::Decoder - Base class for table decoders

## VERSION

version 0.021

## DESCRIPTION

This is an abstract base class describing the API for decoders.

A decoder's job is to iterate table rows of a file containing tabular data. If a file provides multiple tables of data (such as worksheets, or \<TABLE\> tags) then the decode should also support the "next\_dataset" method.

## ATTRIBUTES

### filename

Set by TableReader.  Useful for logging.

### file\_handle

Set by TableReader.  This is what the iterator should parse.

## METHODS

### iterator

This must be implemented by the subclass, to return an instance of Data::TableReader::Iterator.  The iterator should return an arrayref each time it is called, and accept one optional argument of a "slice" needed from the record. All decoder iterators return arrayrefs, so the slice should be an arrayref of column indicies equivalent to the perl syntax

```
  @row[@$slice]
```

## AUTHOR

Michael Conrad \<mike@nrdvana.net\>

## COPYRIGHT AND LICENSE

This software is copyright (c) 2024 by Michael Conrad.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
