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

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

Package that imports Atom feeds

## NAME

Catmandu::Importer::Atom - Package that imports Atom feeds

## SYNOPSIS

```
    use Catmandu::Importer::Atom;
    my $importer = Catmandu::Importer::Atom->new(url => "...");
    my $n = $importer->each(sub {
        my $hashref = $_[0];
        # ...
    });
```

## DATA MODEL

Each parsed Atom entry is transformed into a hash ref:

```
    {
        id         => '...' ,
        title      => '...' ,
        published  => '...' ,
        updated    => '...' ,
        summary    => '...' ,
        rights     => '...' ,
        content    => {
            mode => '...' ,
            type => '...' ,
            body => '...' ,
        } ,
        author     => {
            name  => '...' ,
            email => '...' ,
            uri   => '...' ,
            homepage => '...' ,
        } ,
        contributor => {
            name  => '...' ,
            email => '...' ,
            uri   => '...' ,
            homepage => '...' ,
        } ,
        category => [
            { term => '...' , label => '...' , scheme => '....' } ,
        ],
        link => [
            { rel => '...' , href => '...' , hreflang => '...' ,
              title => '...' , type => '...' , length => '...'} ,
        ],
        <<all other elements are added as name-value pairs>>
    }
```

## METHODS

### new(url =\> URL,\[entries =\> \[qw(...)\])

Create a new Atom importer for the URL. Optionally provide a entries parameter with the feed items you want to import.

### count

### each(&callback)

### ...

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

## SEE ALSO

Catmandu::Iterable
