---
name: "XML::Atom::Entry"
section: "3pm"
platform: "linux"
package: "perl-xml-atom"
version: "0.43-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/XML::Atom::Entry"
---

# XML::Atom::Entry(3pm)

Atom entry

## NAME

XML::Atom::Entry - Atom entry

## SYNOPSIS

```
    use XML::Atom::Entry;
    my $entry = XML::Atom::Entry->new;
    $entry->title('My Post');
    $entry->content('The content of my post.');
    my $xml = $entry->as_xml;
    my $dc = XML::Atom::Namespace->new(dc => 'http://purl.org/dc/elements/1.1/');
    $entry->set($dc, 'subject', 'Food & Drink');
```

## USAGE

### XML::Atom::Entry-\>new(\[ $stream \])

Creates a new entry object, and if *$stream* is supplied, fills it with the data specified by *$stream*.

Automatically handles autodiscovery if *$stream* is a URI (see below).

Returns the new *XML::Atom::Entry* object. On failure, returns `"undef"`.

*$stream* can be any one of the following:

- •

  Reference to a scalar

  This is treated as the XML body of the entry.

- •

  Scalar

  This is treated as the name of a file containing the entry XML.

- •

  Filehandle

  This is treated as an open filehandle from which the entry XML can be read.

### $entry-\>content(\[ $content \])

Returns the content of the entry. If *$content* is given, sets the content of the entry. Automatically handles all necessary escaping.

### $entry-\>author(\[ $author \])

Returns an *XML::Atom::Person* object representing the author of the entry, or `"undef"` if there is no author information present.

If *$author* is supplied, it should be an *XML::Atom::Person* object representing the author. For example:

```
    my $author = XML::Atom::Person->new;
    $author->name('Foo Bar');
    $author->email('foo@bar.com');
    $entry->author($author);
```

### $entry-\>link

If called in scalar context, returns an *XML::Atom::Link* object corresponding to the first *\<link\>* tag found in the entry.

If called in list context, returns a list of *XML::Atom::Link* objects corresponding to all of the *\<link\>* tags found in the entry.

### $entry-\>add\_link($link)

Adds the link *$link*, which must be an *XML::Atom::Link* object, to the entry as a new *\<link\>* tag. For example:

```
    my $link = XML::Atom::Link->new;
    $link->type('text/html');
    $link->rel('alternate');
    $link->href('http://www.example.com/2003/12/post.html');
    $entry->add_link($link);
```

### $entry-\>get($ns, $element)

Given an *XML::Atom::Namespace* element *$ns* and an element name *$element*, retrieves the value for the element in that namespace.

This is useful for retrieving the value of elements not in the main Atom namespace, like categories. For example:

```
    my $dc = XML::Atom::Namespace->new(dc => 'http://purl.org/dc/elements/1.1/');
    my $subj = $entry->get($dc, 'subject');
```

### $entry-\>getlist($ns, $element)

Just like *$entry-\>get*, but if there are multiple instances of the element *$element* in the namespace *$ns*, returns all of them. *get* will return only the first.

## AUTHOR & COPYRIGHT

Please see the *XML::Atom* manpage for author, copyright, and license information.
