man XML::Atom::Feed () - Atom feed


XML::Atom::Feed - Atom feed


    use XML::Atom::Feed;
    use XML::Atom::Entry;
    my $feed = XML::Atom::Feed->new;
    $feed->title('My Weblog');
    my $entry = XML::Atom::Entry->new;
    $entry->title('First Post');
    $entry->content('Post Body');
    my @entries = $feed->entries;
    my $xml = $feed->as_xml;

    ## Get a list of the <link rel="..." /> tags in the feed.
    my $links = $feed->link;

    ## Find all of the Atom feeds on a given page, using auto-discovery.
    my @uris = XML::Atom::Feed->find_feeds('');

    ## Use auto-discovery to load the first Atom feed on a given page.
    my $feed = XML::Atom::Feed->new(URI->new(''));


Creates a new feed 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::Feed object. On failure, returns CWundef.

$stream can be any one of the following:

* Reference to a scalar
This is treated as the XML body of the feed.
* Scalar
This is treated as the name of a file containing the feed XML.
* Filehandle
This is treated as an open filehandle from which the feed XML can be read.
* URI object
This is treated as a URI, and the feed XML will be retrieved from the URI. If the content type returned from fetching the content at URI is text/html, this method will automatically try to perform auto-discovery by looking for a <link> tag describing the feed URL. If such a URL is found, the feed XML will be automatically retrieved. If the URI is already of a feed, no auto-discovery is necessary, and the feed XML will be retrieved and parsed as normal.


Given a URI $uri, use auto-discovery to find all of the Atom feeds linked from that page (using <link> tags).

Returns a list of feed URIs.


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

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


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

    my $link = XML::Atom::Link->new;


Returns the language of the feed, from xml:lang. Returns an XML::Atom::Person object representing the author of the entry, or CWundef 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');


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