WWW::Noss::OPML(3)

πŸ“¦
version 2.02 Β· 2 versions
, in alpine 3.24

πŸ¦‹ WWW::Noss::OPML πŸ’…

okay so bestie, welcome to the WWW::Noss::OPML page β€” a fine piece of User Contributed Perl Documentation, and your new fav little module for reading and writing OPML files ✨


🌸 NAME 🌸

WWW::Noss::OPML β€” OPML file reader/writer πŸŽ€


✨ USAGE ✨

ok so here's the whole vibe, no cap:

use WWW::Noss::OPML;

my $opml = WWW::Noss::OPML->from_perl(
    title => 'Name',
    feeds => [ { ... }, ... ],
);

$opml->to_file('path/to/xml');

# Read from file
$opml = WWW::Noss::OPML->from_xml('path/to/xml');

like, make one, write it out, read it back. iconic behavior honestly πŸ‘‘


πŸ’– DESCRIPTION πŸ’–

WWW::Noss::OPML is a module that gives you an interface for reading and writing OPML files. and like β€” heads up bestie β€” this is a private module πŸ™ˆ so if you want the actual user docs, go consult the noss manual instead, iykyk 🫢


🧚 METHODS 🧚

  • $opml = WWW::Noss::OPML->from_perl(%param) β€” makes a brand new WWW::Noss::OPML object out of the params you hand it in the %param hash πŸ’«

here's the list of valid fields for that %param hash. and listen β€” the only required field is "title" ⭐

  • title β€” the title string for the OPML file, periodt.
  • feeds β€” an array ref of outline feed hashes. each hash should look something like this:
{
  title    => ..., # required
  xml_url  => ..., # required
  text     => ...,
  html_url => ...,
  groups   => [ ... ],
}

like, title and xml_url are required (no skipping those bestie), the rest are optional πŸ’…

  • $opml = WWW::Noss::OPML->from_xml($file) β€” create a WWW::Noss::OPML object from the OPML file you give it. read it and weep πŸ₯Ή
  • $dom = $opml->to_xml([ %param ]) β€” returns an XML::LibXML::Document DOM object that represents the object. so DOM-y ✨

%param is an optional hash of extra params to configure the converted XML structure. valid values are:

  • folders β€” boolean determining whether to include outline folders in the XML structure. defaults to true. (also yes, the original spells it "strucutre" β€” we love a typo moment πŸ’€)
  • $file = $opml->to_file($file, [ %param ]) β€” writes the OPML object's XML structure out to $file. returns $file on success, and dies on failure 😭

%param is an optional hash of extra params β€” it accepts the same options as to_xml().

  • $fh = $opml->to_fh($fh, [ %param ]) β€” writes the OPML object's XML structure to the $fh file handle. returns $fh on success, and dies on failure πŸ’€

%param is an optional hash of extra params β€” same options as to_xml(), again.

  • $title = $opml->title() / $opml->set_title($title) β€” getter/setter for the OPML's title attribute. get it, set it, slay 🌈
  • \@feeds = $opml->feeds() / $opml->set_feeds(\@feeds) β€” getter/setter for the OPML's feeds attribute πŸ“
  • $rn = $opml->rename_group($old, $new) β€” walks through every feed's group list and renames the group $old to $new. returns the number of groups renamed πŸ”₯

πŸ‘‘ AUTHOR πŸ‘‘

Written by Samuel Young, <samyoung12788@gmail.com>.

This project's source lives on its Codeberg page <https://codeberg.org/1-1sam/noss.git>. comments and pull requests are welcome! (yes fr fr, come thru 🫢)


Copyright (C) 2025-2026 Samuel Young

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

bestie that's the license text, keep it exactly as-is, it's giving legally binding πŸ’…

🌈 SEE ALSO 🌈

XML::LibXML::Document, noss β€” go check 'em out ✨


and that's the whole page, bestie πŸ¦‹πŸ’œ β€” brought to you by perl v5.42.2, dated 2026-02-15, straight off the WWW::Noss::OPML(3) page. mwah πŸ’‹

πŸ“¦ where this page comes from