---
name: "Catmandu::Importer::TSV"
section: "3pm"
platform: "linux"
package: "libcatmandu-perl"
version: "1.2024-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Catmandu::Importer::TSV"
---

# Catmandu::Importer::TSV(3pm)

Package that imports tab-separated values

## NAME

Catmandu::Importer::TSV - Package that imports tab-separated values

## SYNOPSIS

```
    # From the command line
    # convert a TSV file to JSON
    catmandu convert TSV to JSON < journals.tab
    # Or in a Perl script
    use Catmandu;
    my $importer = Catmandu->importer('TSV', file => "/foo/bar.tab");
    my $n = $importer->each(sub {
        my $hashref = $_[0];
        # ...
    });
```

## DESCRIPTION

This package imports tab-separated values (TSV).  The object fields are read from the TSV header line or given via the `"fields"` parameter.

## CONFIGURATION

- file

  Read input from a local file given by its path. Alternatively a scalar reference can be passed to read from a string.

- fh

  Read input from an IO::Handle. If not specified, Catmandu::Util::io is used to create the input stream from the `"file"` argument or by using STDIN.

- encoding

  Binmode of the input stream `"fh"`. Set to `":utf8"` by default.

- fix

  An ARRAY of one or more fixes or file scripts to be applied to imported items.

- fields

  List of fields to be used as columns, given as array reference, comma-separated string, or hash reference. If `"header"` is `0` and `"fields"` is `"undef"` the fields will be named by column index ("0", "1", "2", ...).

- header

  Read fields from a header line with the column names, if set to `1` (the default).

- sep\_char

  Column separator (`"tab"` by default)

## METHODS

Every Catmandu::Importer is a Catmandu::Iterable all its methods are inherited.  The methods are not idempotent: CSV streams can only be read once.

## SEE ALSO

Catmandu::Exporter::TSV
