NAME

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

VERSION

version 0.022

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

file_handle

This is what the iterator should parse. Streams should work, but for best results use a seekable file handle.

real_file_name

Indicates real filename of file_handle, or undef if that can't be determined.

client_file_name

Indicates a client-side file name which should be used in client-facing log messages.

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