Pod::Html(3perl)

πŸ’– Pod::Html β€” the vibe πŸ’–

okay bestie, so this is Pod::Html, live from the Perl Programmers Reference Guide. she's a whole module and she's here to turn your boring little pod files into glamorous HTML. periodt.


✨ NAME ✨

Pod::Html β€” a module to convert pod files to HTML 🌸


✨ SYNOPSIS ✨

use Pod::Html;
pod2html([options]);

like. that's it. that's the whole entrance. she's low maintenance πŸ’…


✨ DESCRIPTION ✨

she converts files from pod format (go read perlpod if you don't know her, iykyk) into HTML format. and she doesn't just do the bare minimum β€” she can automatically generate indexes and cross-references, and she keeps a cache of the things she knows how to cross-reference. not her being organized and efficient 😭 queen behavior fr fr.


✨ FUNCTIONS ✨

🌈 pod2html

pod2html("pod2html",
         "--podpath=lib:ext:pod:vms",
         "--podroot=/usr/src/perl",
         "--htmlroot=/perl/nmanual",
         "--recurse",
         "--infile=foo.pod",
         "--outfile=/perl/nmanual/foo.html");

look at that beautiful little call. she ate πŸ’…

so pod2html takes the following arguments, and yes we're going through every single one, no skips, no cuts:

  • --backlink β€” turns every head1 heading into a link back to the top of the page. by default, no backlinks are generated. it's giving "take me home" energy 🏠
  • --cachedir=name β€” creates the directory cache in the given directory. she needs a lil home for her memories 🧠✨
  • --css=stylesheet β€” specify the URL of a cascading style sheet. ALSO disables all HTML/CSS style attributes that are output by default (to avoid conflicts). so like, pick a lane bestie, she's committing πŸŽ€
  • --flush β€” flushes the directory cache. clean slate, we love a reset 🚿
  • --header, --noheader β€” creates header and footer blocks containing the text of the NAME section. by default, no headers are generated.
  • --help β€” displays the usage message. she will literally tell you how to use her 🫢
  • --htmldir=name β€” sets the directory to which all cross references in the resulting html file will be relative. not passing this causes all links to be absolute, since this is the value that tells Pod::Html the root of the documentation tree.
do NOT use this and --htmlroot in the same call to pod2html β€” they are mutually exclusive. pick one, bestie, you can't have both 😭
  • --htmlroot=name β€” sets the base URL for the HTML files. when cross-references are made, the HTML root is prepended to the URL.

do not use this if relative links are desired: use --htmldir instead.

do not pass both this and --htmldir to pod2html β€” they are mutually exclusive. again!! one or the other, no cap 🚫
  • --index, --noindex β€” generate an index at the top of the HTML file. this is the default behaviour. slay, she comes with the table of contents pre-installed πŸ‘‘
  • --infile=name β€” specify the pod file to convert. input is taken from STDIN if no infile is specified. no file? she'll just read your vibes from stdin πŸ’«
  • --outfile=name β€” specify the HTML file to create. output goes to STDOUT if no outfile is specified.
  • --poderrors, --nopoderrors β€” include a POD ERRORS section in the outfile if there were any POD errors in the infile. this section is included by default. she WILL call you out (lovingly) πŸ™ˆ
  • --podpath=name:...:name β€” specify which subdirectories of the podroot contain pod files whose HTML converted forms can be linked to in cross references.
  • --podroot=name β€” specify the base directory for finding library pods. default is the current working directory. she hangs out wherever you are 🏑
  • --quiet, --noquiet β€” don't display mostly harmless warning messages. these messages will be displayed by default. but heads up: this is not the same as "verbose" mode. different thing entirely bestie, don't get it twisted.
  • --recurse, --norecurse β€” recurse into subdirectories specified in podpath (default behaviour). she goes deep. she's thorough. she's committed πŸ¦‹
  • --title=title β€” specify the title of the resulting HTML file. give your girl a name πŸ’–
  • --verbose, --noverbose β€” display progress messages. by default, they won't be displayed. (again: not the same as --quiet!!)

🌸 Formerly Exported Auxiliary Functions

so here's the tea, and honestly it's a little dramatic. prior to perl-5.36, these three functions were exported by Pod::Html, either by default or on request:

  • htmlify() (by default) ✨
  • anchorify() (upon request) 🌟
  • relativize_url() (upon request) πŸ’«

the definition and documentation of these functions have been moved to Pod::Html::Util, viewable via perldoc Pod::Html::Util.

beginning with perl-5.38, these functions must be explicitly imported from Pod::Html::Util. please modify your code as needed. this is your official heads up, bestie, go fix your imports 😭

✨ ENVIRONMENT ✨

uses $Config{pod2html} to setup default options. she checks her config before she does anything, as she should πŸ’…


✨ AUTHOR ✨

Marc Green, <marcgreen@cpan.org>. 🫢

original version by Tom Christiansen, <tchrist@perl.com>. 🌟


✨ SEE ALSO ✨

  • perlpod

this program is distributed under the Artistic License. 🌈


and that's the whole page, bestie!! go forth and convert some pod πŸŽ€

signing off from perl v5.44.0, dated 2026-10-17 β€” Pod::Html(3perl) out πŸ’…βœ¨

πŸ“¦ where this page comes from
  • arch rolling: perl 5.44.0-1 Β· Artistic-1.0-Perl AND GPL-1.0-or-later
  • πŸ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms