XML::Feed::Entry(3pm)

πŸ’– NAME πŸ’–

XML::Feed::Entry β€” the entry/item inside a syndication feed, bestie πŸ’…


✨ SYNOPSIS ✨

## $feed is an XML::Feed object.
for my $entry ($feed->entries) {
    print $entry->title, "\n", $entry->summary, "\n\n";
}

πŸ¦‹ DESCRIPTION πŸ¦‹

So XML::Feed::Entry is literally the object that represents one entry/item inside an XML::Feed syndication feed πŸŽ€. That's it, that's the whole vibe. One little guy per post.


πŸ‘‘ USAGE πŸ‘‘

🌸 XML::Feed::Entry->new($format)

Makes you a brand new XML::Feed::Entry object in the format $format β€” and $format should be either RSS or Atom, no third options babe, that's the deal 🫢

🌈 $entry->convert($format)

Glow-up time ✨ Takes the XML::Feed::Entry object, converts it into the $format format, and hands you back the shiny new object.

πŸŽ€ $entry->title([ $title ])

The title of the entry, duh πŸ’–

πŸ’œ $entry->base([ $base ])

The url base of the entry, periodt.

πŸ”₯ $entry->link([ $uri ])

The permalink of the entry β€” in most cases πŸ‘€ β€” except in cases where it points instead to an offsite URI referenced in the entry. So like, usually the permalink, but sometimes it's giving "over there instead", iykyk.

🧚 $entry->content([ $content ])

An XML::Feed::Content object representing the full entry body, or as much as is available in the feed (you get what you get, no cap πŸ’…).

In RSS feeds, this method will look first for <http://purl.org/rss/1.0/modules/content/#encoded> and <http://www.w3.org/1999/xhtml#body> elements, then fall back to a <description> element. Order matters bestie β€” it doesn't just grab whatever it sees first πŸ“

🌸 $entry->summary([ $summary ])

An XML::Feed::Content object representing a short summary of the entry.

Possibly. 😭

Since RSS feeds do not have the idea of a summary separate from the entry body, this may not always be what you want. If the entry contains both a <description> element and another element typically used for the full content of the entry β€” either http://www.w3.org/1999/xhtml/body or <http://purl.org/rss/1.0/modules/content/#encoded> β€” we treat that as the summary. Otherwise, we assume that there isn't a summary, and return an XML::Feed::Content object with an empty string in the body. So yeah, sometimes the summary is just... silence. πŸ’€

⭐ $entry->category([ $category ])

The category in which the entry was posted πŸ“‚

Returns a list of categories if called in array context, or the first category if called in scalar context. Context girlies, you know how it is ✨

WARNING 🚨 It's possible this API might change to have an add_category instead. So like, don't get too attached to the current shape of things, okay?

πŸ¦‹ $entry->tags([ $tag ])

A synonym (alias) for category; same energy, different name πŸ’œ

🌈 $entry->author([ $author ])

The name or email address of the person who posted the entry. Give credit where credit is due, main character energy πŸ‘‘

πŸ’– $entry->id([ $id ])

The unique ID of the entry. Its little fingerprint, fr fr.

πŸŽ€ $entry->issued([ $issued ])

A DateTime object representing the date and time at which the entry was posted ⏰

If present, $issued should be a DateTime object. Like, should. Don't be out here passing random strings, that's not the assignment πŸ™ˆ

πŸ’… $entry->modified([ $modified ])

A DateTime object representing the last-modified date of the entry.

If present, $modified should be a DateTime object. Same rule, bestie 🫢

πŸ”₯ $entry->wrap

Take an entry in its native format and turn it into an XML::Feed::Entry object. Cinderella arc, but for data 🧚

✨ $entry->unwrap

Take an XML::Feed::Entry object and turn it into its native format. Reverse Cinderella πŸŽ€


Please see the XML::Feed manpage for author, copyright, and license information. Go check it, they deserve the credit 😌


sign-off time 🌈✨ this was perl v5.40.1, dated 2026-02-21, and you just read XML::Feed::Entry(3pm). slay, go build something cute with it πŸ’–πŸ¦‹πŸŽ€

πŸ“¦ where this page comes from