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

# Catmandu::Fix::Bind::importer(3pm)

a binder runs fixes on records from an importer

## NAME

Catmandu::Fix::Bind::importer - a binder runs fixes on records from an importer

## SYNOPSIS

```
    #
    catmandu run myfix.fix
    # with myfix.fix
    do importer(OAI,url: "http://lib.ugent.be/oai")
      retain(_id)
      add_to_exporter(.,YAML)
    end
    # Or in an runnable Fix script:
    #!/usr/bin/env catmandu run
    add_field(hello,world)
    add_to_exporter(.,YAML)
    # Or:
    #!/usr/bin/env catmandu run
    do importer(OAI,url: "http://lib.ugent.be/oai")
      retain(_id)
      add_to_exporter(.,YAML)
    end
```

## DESCRIPTION

The import binder computes all the Fix function on records read from the given importer. This importer doesn't change the current importer to the given one! Use the 'catmandu run' command line command to control importers solely by the Fix script.

## CONFIGURATION

### importer(IMPORTER\_NAME, step: true\|false, IMPORTER\_ARGS...)

Load the import IMPORTER\_NAME in the current context. When step is 'true' then for every execution of do **importer()** only one item will be read from the importer. This latter option can become handy in nested iterators:

```
    # This will produce:
    #  {"n":0}
    #  {"m":0}
    #  {"n":1}
    #  {"m":1}
    #  {"n":2}
    #  {"m":2}
    # ...
    do importer(Mock,size:20)
        move_field(n,brol)
        add_to_exporter(.,JSON)
        do importer(Mock,size:20,step:true)
            move_field(n,m)
            add_to_exporter(.,JSON)
        end
    end
```

## SEE ALSO

Catmandu::Fix::Bind, Catmandu::Cmd::run
