1Pod::Man(3)           User Contributed Perl Documentation          Pod::Man(3)
2
3
4

NAME

6       Pod::Man - Convert POD data to formatted *roff input
7

SYNOPSIS

9           use Pod::Man;
10           my $parser = Pod::Man->new (release => $VERSION, section => 8);
11
12           # Read POD from STDIN and write to STDOUT.
13           $parser->parse_file (\*STDIN);
14
15           # Read POD from file.pod and write to file.1.
16           $parser->parse_from_file ('file.pod', 'file.1');
17

DESCRIPTION

19       Pod::Man is a module to convert documentation in the POD format (the
20       preferred language for documenting Perl) into *roff input using the man
21       macro set.  The resulting *roff code is suitable for display on a
22       terminal using nroff(1), normally via man(1), or printing using
23       troff(1).  It is conventionally invoked using the driver script
24       pod2man, but it can also be used directly.
25
26       By default (on non-EBCDIC systems), Pod::Man outputs UTF-8.  Its output
27       should work with the man program on systems that use groff (most Linux
28       distributions) or mandoc (most BSD variants), but may result in mangled
29       output on older UNIX systems.  To choose a different, possibly more
30       backward-compatible output mangling on such systems, set the "encoding"
31       option to "roff" (the default in earlier Pod::Man versions).  See the
32       "encoding" option and "ENCODING" for more details.
33
34       See "COMPATIBILTY" for the versions of Pod::Man with significant
35       backward-incompatible changes (other than constructor options, whose
36       versions are documented below), and the versions of Perl that included
37       them.
38

CLASS METHODS

40       new(ARGS)
41           Create a new Pod::Man object.  ARGS should be a list of key/value
42           pairs, where the keys are chosen from the following.  Each option
43           is annotated with the version of Pod::Man in which that option was
44           added with its current meaning.
45
46           center
47               [1.00] Sets the centered page header for the ".TH" macro.  The
48               default, if this option is not specified, is "User Contributed
49               Perl Documentation".
50
51           date
52               [4.00] Sets the left-hand footer for the ".TH" macro.  If this
53               option is not set, the contents of the environment variable
54               POD_MAN_DATE, if set, will be used.  Failing that, the value of
55               SOURCE_DATE_EPOCH, the modification date of the input file, or
56               the current time if stat() can't find that file (which will be
57               the case if the input is from "STDIN") will be used.  If taken
58               from any source other than POD_MAN_DATE (which is used
59               verbatim), the date will be formatted as "YYYY-MM-DD" and will
60               be based on UTC (so that the output will be reproducible
61               regardless of local time zone).
62
63           encoding
64               [5.00] Specifies the encoding of the output.  The value must be
65               an encoding recognized by the Encode module (see
66               Encode::Supported), or the special values "roff" or "groff".
67               The default on non-EBCDIC systems is UTF-8.
68
69               If the output contains characters that cannot be represented in
70               this encoding, that is an error that will be reported as
71               configured by the "errors" option.  If error handling is other
72               than "die", the unrepresentable character will be replaced with
73               the Encode substitution character (normally "?").
74
75               If the "encoding" option is set to the special value "groff"
76               (the default on EBCDIC systems), or if the Encode module is not
77               available and the encoding is set to anything other than
78               "roff", Pod::Man will translate all non-ASCII characters to
79               "\[uNNNN]" Unicode escapes.  These are not traditionally part
80               of the *roff language, but are supported by groff and mandoc
81               and thus by the majority of manual page processors in use
82               today.
83
84               If the "encoding" option is set to the special value "roff",
85               Pod::Man will do its historic transformation of (some) ISO
86               8859-1 characters into *roff escapes that may be adequate in
87               troff and may be readable (if ugly) in nroff.  This was the
88               default behavior of versions of Pod::Man before 5.00.  With
89               this encoding, all other non-ASCII characters will be replaced
90               with "X".  It may be required for very old troff and nroff
91               implementations that do not support UTF-8, but its
92               representation of any non-ASCII character is very poor and
93               often specific to European languages.
94
95               If the output file handle has a PerlIO encoding layer set,
96               setting "encoding" to anything other than "groff" or "roff"
97               will be ignored and no encoding will be done by Pod::Man.  It
98               will instead rely on the encoding layer to make whatever output
99               encoding transformations are desired.
100
101               WARNING: The input encoding of the POD source is independent
102               from the output encoding, and setting this option does not
103               affect the interpretation of the POD input.  Unless your POD
104               source is US-ASCII, its encoding should be declared with the
105               "=encoding" command in the source.  If this is not done,
106               Pod::Simple will will attempt to guess the encoding and may be
107               successful if it's Latin-1 or UTF-8, but it will produce
108               warnings.  See perlpod(1) for more information.
109
110           errors
111               [2.27] How to report errors.  "die" says to throw an exception
112               on any POD formatting error.  "stderr" says to report errors on
113               standard error, but not to throw an exception.  "pod" says to
114               include a POD ERRORS section in the resulting documentation
115               summarizing the errors.  "none" ignores POD errors entirely, as
116               much as possible.
117
118               The default is "pod".
119
120           fixed
121               [1.00] The fixed-width font to use for verbatim text and code.
122               Defaults to "CW".  Some systems prefer "CR" instead.  Only
123               matters for troff output.
124
125           fixedbold
126               [1.00] Bold version of the fixed-width font.  Defaults to "CB".
127               Only matters for troff output.
128
129           fixeditalic
130               [1.00] Italic version of the fixed-width font (something of a
131               misnomer, since most fixed-width fonts only have an oblique
132               version, not an italic version).  Defaults to "CI".  Only
133               matters for troff output.
134
135           fixedbolditalic
136               [1.00] Bold italic (in theory, probably oblique in practice)
137               version of the fixed-width font.  Pod::Man doesn't assume you
138               have this, and defaults to "CB".  Some systems (such as
139               Solaris) have this font available as "CX".  Only matters for
140               troff output.
141
142           guesswork
143               [5.00] By default, Pod::Man applies some default formatting
144               rules based on guesswork and regular expressions that are
145               intended to make writing Perl documentation easier and require
146               less explicit markup.  These rules may not always be
147               appropriate, particularly for documentation that isn't about
148               Perl.  This option allows turning all or some of it off.
149
150               The special value "all" enables all guesswork.  This is also
151               the default for backward compatibility reasons.  The special
152               value "none" disables all guesswork.  Otherwise, the value of
153               this option should be a comma-separated list of one or more of
154               the following keywords:
155
156               functions
157                   Convert function references like foo() to bold even if they
158                   have no markup.  The function name accepts valid Perl
159                   characters for function names (including ":"), and the
160                   trailing parentheses must be present and empty.
161
162               manref
163                   Make the first part (before the parentheses) of manual page
164                   references like foo(1) bold even if they have no markup.
165                   The section must be a single number optionally followed by
166                   lowercase letters.
167
168               quoting
169                   If no guesswork is enabled, any text enclosed in C<> is
170                   surrounded by double quotes in nroff (terminal) output
171                   unless the contents are already quoted.  When this
172                   guesswork is enabled, quote marks will also be suppressed
173                   for Perl variables, function names, function calls,
174                   numbers, and hex constants.
175
176               variables
177                   Convert Perl variable names to a fixed-width font even if
178                   they have no markup.  This transformation will only be
179                   apparent in troff output, or some other output format
180                   (unlike nroff terminal output) that supports fixed-width
181                   fonts.
182
183               Any unknown guesswork name is silently ignored (for potential
184               future compatibility), so be careful about spelling.
185
186           language
187               [5.00] Add commands telling groff that the input file is in the
188               given language.  The value of this setting must be a language
189               abbreviation for which groff provides supplemental
190               configuration, such as "ja" (for Japanese) or "zh" (for
191               Chinese).
192
193               Specifically, this adds:
194
195                   .mso <language>.tmac
196                   .hla <language>
197
198               to the start of the file, which configure correct line breaking
199               for the specified language.  Without these commands, groff may
200               not know how to add proper line breaks for Chinese and Japanese
201               text if the manual page is installed into the normal manual
202               page directory, such as /usr/share/man.
203
204               On many systems, this will be done automatically if the manual
205               page is installed into a language-specific manual page
206               directory, such as /usr/share/man/zh_CN.  In that case, this
207               option is not required.
208
209               Unfortunately, the commands added with this option are specific
210               to groff and will not work with other troff and nroff
211               implementations.
212
213           lquote
214           rquote
215               [4.08] Sets the quote marks used to surround C<> text.
216               "lquote" sets the left quote mark and "rquote" sets the right
217               quote mark.  Either may also be set to the special value
218               "none", in which case no quote mark is added on that side of
219               C<> text (but the font is still changed for troff output).
220
221               Also see the "quotes" option, which can be used to set both
222               quotes at once.  If both "quotes" and one of the other options
223               is set, "lquote" or "rquote" overrides "quotes".
224
225           name
226               [4.08] Set the name of the manual page for the ".TH" macro.
227               Without this option, the manual name is set to the uppercased
228               base name of the file being converted unless the manual section
229               is 3, in which case the path is parsed to see if it is a Perl
230               module path.  If it is, a path like ".../lib/Pod/Man.pm" is
231               converted into a name like "Pod::Man".  This option, if given,
232               overrides any automatic determination of the name.
233
234               If generating a manual page from standard input, the name will
235               be set to "STDIN" if this option is not provided.  In this
236               case, providing this option is strongly recommended to set a
237               meaningful manual page name.
238
239           nourls
240               [2.27] Normally, L<> formatting codes with a URL but anchor
241               text are formatted to show both the anchor text and the URL.
242               In other words:
243
244                   L<foo|http://example.com/>
245
246               is formatted as:
247
248                   foo <http://example.com/>
249
250               This option, if set to a true value, suppresses the URL when
251               anchor text is given, so this example would be formatted as
252               just "foo".  This can produce less cluttered output in cases
253               where the URLs are not particularly important.
254
255           quotes
256               [4.00] Sets the quote marks used to surround C<> text.  If the
257               value is a single character, it is used as both the left and
258               right quote.  Otherwise, it is split in half, and the first
259               half of the string is used as the left quote and the second is
260               used as the right quote.
261
262               This may also be set to the special value "none", in which case
263               no quote marks are added around C<> text (but the font is still
264               changed for troff output).
265
266               Also see the "lquote" and "rquote" options, which can be used
267               to set the left and right quotes independently.  If both
268               "quotes" and one of the other options is set, "lquote" or
269               "rquote" overrides "quotes".
270
271           release
272               [1.00] Set the centered footer for the ".TH" macro.  By
273               default, this is set to the version of Perl you run Pod::Man
274               under.  Setting this to the empty string will cause some *roff
275               implementations to use the system default value.
276
277               Note that some system "an" macro sets assume that the centered
278               footer will be a modification date and will prepend something
279               like "Last modified: ".  If this is the case for your target
280               system, you may want to set "release" to the last modified date
281               and "date" to the version number.
282
283           section
284               [1.00] Set the section for the ".TH" macro.  The standard
285               section numbering convention is to use 1 for user commands, 2
286               for system calls, 3 for functions, 4 for devices, 5 for file
287               formats, 6 for games, 7 for miscellaneous information, and 8
288               for administrator commands.  There is a lot of variation here,
289               however; some systems (like Solaris) use 4 for file formats, 5
290               for miscellaneous information, and 7 for devices.  Still others
291               use 1m instead of 8, or some mix of both.  About the only
292               section numbers that are reliably consistent are 1, 2, and 3.
293
294               By default, section 1 will be used unless the file ends in
295               ".pm" in which case section 3 will be selected.
296
297           stderr
298               [2.19] If set to a true value, send error messages about
299               invalid POD to standard error instead of appending a POD ERRORS
300               section to the generated *roff output.  This is equivalent to
301               setting "errors" to "stderr" if "errors" is not already set.
302
303               This option is for backward compatibility with Pod::Man
304               versions that did not support "errors".  Normally, the "errors"
305               option should be used instead.
306
307           utf8
308               [2.21] This option used to set the output encoding to UTF-8.
309               Since this is now the default, it is ignored and does nothing.
310

INSTANCE METHODS

312       As a derived class from Pod::Simple, Pod::Man supports the same methods
313       and interfaces.  See Pod::Simple for all the details.  This section
314       summarizes the most-frequently-used methods and the ones added by
315       Pod::Man.
316
317       output_fh(FH)
318           Direct the output from parse_file(), parse_lines(), or
319           parse_string_document() to the file handle FH instead of "STDOUT".
320
321       output_string(REF)
322           Direct the output from parse_file(), parse_lines(), or
323           parse_string_document() to the scalar variable pointed to by REF,
324           rather than "STDOUT".  For example:
325
326               my $man = Pod::Man->new();
327               my $output;
328               $man->output_string(\$output);
329               $man->parse_file('/some/input/file');
330
331           Be aware that the output in that variable will already be encoded
332           in UTF-8.
333
334       parse_file(PATH)
335           Read the POD source from PATH and format it.  By default, the
336           output is sent to "STDOUT", but this can be changed with the
337           output_fh() or output_string() methods.
338
339       parse_from_file(INPUT, OUTPUT)
340       parse_from_filehandle(FH, OUTPUT)
341           Read the POD source from INPUT, format it, and output the results
342           to OUTPUT.
343
344           parse_from_filehandle() is provided for backward compatibility with
345           older versions of Pod::Man.  parse_from_file() should be used
346           instead.
347
348       parse_lines(LINES[, ...[, undef]])
349           Parse the provided lines as POD source, writing the output to
350           either "STDOUT" or the file handle set with the output_fh() or
351           output_string() methods.  This method can be called repeatedly to
352           provide more input lines.  An explicit "undef" should be passed to
353           indicate the end of input.
354
355           This method expects raw bytes, not decoded characters.
356
357       parse_string_document(INPUT)
358           Parse the provided scalar variable as POD source, writing the
359           output to either "STDOUT" or the file handle set with the
360           output_fh() or output_string() methods.
361
362           This method expects raw bytes, not decoded characters.
363

ENCODING

365       As of Pod::Man 5.00, the default output encoding for Pod::Man is UTF-8.
366       This should work correctly on any modern system that uses either groff
367       (most Linux distributions) or mandoc (Alpine Linux and most BSD
368       variants, including macOS).
369
370       The user will probably have to use a UTF-8 locale to see correct
371       output.  This may be done by default; if not, set the LANG or LC_CTYPE
372       environment variables to an appropriate local.  The locale "C.UTF-8" is
373       available on most systems if one wants correct output without changing
374       the other things locales affect, such as collation.
375
376       The backward-compatible output format used in Pod::Man versions before
377       5.00 is available by setting the "encoding" option to "roff".  This may
378       produce marginally nicer results on older UNIX versions that do not use
379       groff or mandoc, but none of the available options will correctly
380       render Unicode characters on those systems.
381
382       Below are some additional details about how this choice was made and
383       some discussion of alternatives.
384
385   History
386       The default output encoding for Pod::Man has been a long-standing
387       problem.  troff and nroff predate Unicode by a significant margin, and
388       their implementations for many UNIX systems reflect that legacy.  It's
389       common for Unicode to not be supported in any form.
390
391       Because of this, versions of Pod::Man prior to 5.00 maintained the
392       highly conservative output of the original pod2man, which output pure
393       ASCII with complex macros to simulate common western European accented
394       characters when processed with troff.  The nroff output was awkward and
395       sometimes incorrect, and characters not used in western European
396       scripts were replaced with "X".  This choice maximized backwards
397       compatibility with man and nroff/troff implementations at the cost of
398       incorrect rendering of many POD documents, particularly those
399       containing people's names.
400
401       The modern implementations, groff (used in most Linux distributions)
402       and mandoc (used by most BSD variants), do now support Unicode.  Other
403       UNIX systems often do not, but they're now a tiny minority of the
404       systems people use on a daily basis.  It's increasingly common (for
405       very good reasons) to use Unicode characters for POD documents rather
406       than using ASCII conversions of people's names or avoiding non-English
407       text, making the limitations in the old output format more apparent.
408
409       Four options have been proposed to fix this:
410
411       • Optionally support UTF-8 output but don't change the default.  This
412         is the approach taken since Pod::Man 2.1.0, which added the "utf8"
413         option.  Some Pod::Man users use this option for better output on
414         platforms known to support Unicode, but since the defaults have not
415         changed, people continued to encounter (and file bug reports about)
416         the poor default rendering.
417
418       • Convert characters to troff "\(xx" escapes.  This requires
419         maintaining a large translation table and addresses only a tiny part
420         of the problem, since many Unicode characters have no standard troff
421         name.  groff has the largest list, but if one is willing to assume
422         groff is the formatter, the next option is better.
423
424       • Convert characters to groff "\[uNNNN]" escapes.  This is implemented
425         as the "groff" encoding for those who want to use it, and is
426         supported by both groff and mandoc.  However, it is no better than
427         UTF-8 output for portability to other implementations.  See "Testing
428         results" for more details.
429
430       • Change the default output format to UTF-8 and ask those who want
431         maximum backward compatibility to explicitly select the old encoding.
432         This fixes the issue for most users at the cost of backwards
433         compatibility.  While the rendering of non-ASCII characters is
434         different on older systems that don't support UTF-8, it's not always
435         worse than the old output.
436
437       Pod::Man 5.00 and later makes the last choice.  This arguably produces
438       worse output when manual pages are formatted with troff into PostScript
439       or PDF, but doing this is rare and normally manual, so the encoding can
440       be changed in those cases.  The older output encoding is available by
441       setting "encoding" to "roff".
442
443   Testing results
444       Here is the results of testing "encoding" values of "utf-8" and "groff"
445       on various operating systems.  The testing methodology was to create
446       man/man1 in the current directory, copy encoding.utf8 or encoding.groff
447       from the podlators 5.00 distribution to man/man1/encoding.1, and then
448       run:
449
450           LANG=C.UTF-8 MANPATH=$(pwd)/man man 1 encoding
451
452       If the locale is not explicitly set to one that includes UTF-8, the
453       Unicode characters were usually converted to ASCII (by, for example,
454       dropping an accent) or deleted or replaced with "<?>" if there was no
455       conversion.
456
457       Tested on 2022-09-25.  Many thanks to the GCC Compile Farm project for
458       access to testing hosts.
459
460           OS                   UTF-8      groff
461           ------------------   -------    -------
462           AIX 7.1              no [1]     no [2]
463           Alpine 3.15.0        yes        yes
464           CentOS 7.9           yes        yes
465           Debian 7             yes        yes
466           FreeBSD 13.0         yes        yes
467           NetBSD 9.2           yes        yes
468           OpenBSD 7.1          yes        yes
469           openSUSE Leap 15.4   yes        yes
470           Solaris 10           yes        no [2]
471           Solaris 11           no [3]     no [3]
472
473       I did not have access to a macOS system for testing, but since it uses
474       mandoc, it's behavior is probably the same as the BSD hosts.
475
476       Notes:
477
478       [1] Unicode characters were converted to one or two random ASCII
479           characters unrelated to the original character.
480
481       [2] Unicode characters were shown as the body of the groff escape
482           rather than the indicated character (in other words, text like
483           "[u00EF]").
484
485       [3] Unicode characters were deleted entirely, as if they weren't there.
486           Using "nroff -man" instead of man to format the page showed the
487           same results as Solaris 10.  Using "groff -k -man -Tutf8" to format
488           the page produced the correct output.
489
490       PostScript and PDF output using groff on a Debian 12 system do not
491       support combining accent marks or SMP characters due to a lack of
492       support in the default output font.
493
494       Testing on additional platforms is welcome.  Please let the author know
495       if you have additional results.
496

DIAGNOSTICS

498       roff font should be 1 or 2 chars, not "%s"
499           (F) You specified a *roff font (using "fixed", "fixedbold", etc.)
500           that wasn't either one or two characters.  Pod::Man doesn't support
501           *roff fonts longer than two characters, although some *roff
502           extensions do (the canonical versions of nroff and troff don't
503           either).
504
505       Invalid errors setting "%s"
506           (F) The "errors" parameter to the constructor was set to an unknown
507           value.
508
509       Invalid quote specification "%s"
510           (F) The quote specification given (the "quotes" option to the
511           constructor) was invalid.  A quote specification must be either one
512           character long or an even number (greater than one) characters
513           long.
514
515       POD document had syntax errors
516           (F) The POD document being formatted had syntax errors and the
517           "errors" option was set to "die".
518

ENVIRONMENT

520       PERL_CORE
521           If set and Encode is not available, silently fall back to an
522           encoding of "groff" without complaining to standard error.  This
523           environment variable is set during Perl core builds, which build
524           Encode after podlators.  Encode is expected to not (yet) be
525           available in that case.
526
527       POD_MAN_DATE
528           If set, this will be used as the value of the left-hand footer
529           unless the "date" option is explicitly set, overriding the
530           timestamp of the input file or the current time.  This is primarily
531           useful to ensure reproducible builds of the same output file given
532           the same source and Pod::Man version, even when file timestamps may
533           not be consistent.
534
535       SOURCE_DATE_EPOCH
536           If set, and POD_MAN_DATE and the "date" options are not set, this
537           will be used as the modification time of the source file,
538           overriding the timestamp of the input file or the current time.  It
539           should be set to the desired time in seconds since UNIX epoch.
540           This is primarily useful to ensure reproducible builds of the same
541           output file given the same source and Pod::Man version, even when
542           file timestamps may not be consistent.  See
543           <https://reproducible-builds.org/specs/source-date-epoch/> for the
544           full specification.
545
546           (Arguably, according to the specification, this variable should be
547           used only if the timestamp of the input file is not available and
548           Pod::Man uses the current time.  However, for reproducible builds
549           in Debian, results were more reliable if this variable overrode the
550           timestamp of the input file.)
551

COMPATIBILITY

553       Pod::Man 1.02 (based on Pod::Parser) was the first version included
554       with Perl, in Perl 5.6.0.
555
556       The current API based on Pod::Simple was added in Pod::Man 2.00.
557       Pod::Man 2.04 was included in Perl 5.9.3, the first version of Perl to
558       incorporate those changes.  This is the first version that correctly
559       supports all modern POD syntax.  The parse_from_filehandle() method was
560       re-added for backward compatibility in Pod::Man 2.09, included in Perl
561       5.9.4.
562
563       Support for anchor text in L<> links of type URL was added in Pod::Man
564       2.23, included in Perl 5.11.5.
565
566       parse_lines(), parse_string_document(), and parse_file() set a default
567       output file handle of "STDOUT" if one was not already set as of
568       Pod::Man 2.28, included in Perl 5.19.5.
569
570       Support for SOURCE_DATE_EPOCH and POD_MAN_DATE was added in Pod::Man
571       4.00, included in Perl 5.23.7, and generated dates were changed to use
572       UTC instead of the local time zone.  This is also the first release
573       that aligned the module version and the version of the podlators
574       distribution.  All modules included in podlators, and the podlators
575       distribution itself, share the same version number from this point
576       forward.
577
578       Pod::Man 4.10, included in Perl 5.27.8, changed the formatting for
579       manual page references and function names to bold instead of italic,
580       following the current Linux manual page standard.
581
582       Pod::Man 5.00 changed the default output encoding to UTF-8, overridable
583       with the new "encoding" option.  It also fixed problems with bold or
584       italic extending too far when used with C<> escapes, and began
585       converting Unicode zero-width spaces (U+200B) to the "\:" *roff escape.
586       It also dropped attempts to add subtle formatting corrections in the
587       output that would only be visible when typeset with troff, which had
588       previously been a significant source of bugs.
589

BUGS

591       There are numerous bugs and language-specific assumptions in the nroff
592       fallbacks for accented characters in the "roff" encoding.  Since the
593       point of this encoding is backward compatibility with the output from
594       earlier versions of Pod::Man, and it is deprecated except when
595       necessary to support old systems, those bugs are unlikely to ever be
596       fixed.
597
598       Pod::Man doesn't handle font names longer than two characters.  Neither
599       do most troff implementations, but groff does as an extension.  It
600       would be nice to support as an option for those who want to use it.
601

CAVEATS

603   Sentence spacing
604       Pod::Man copies the input spacing verbatim to the output *roff
605       document.  This means your output will be affected by how nroff
606       generally handles sentence spacing.
607
608       nroff dates from an era in which it was standard to use two spaces
609       after sentences, and will always add two spaces after a line-ending
610       period (or similar punctuation) when reflowing text.  For example, the
611       following input:
612
613           =pod
614
615           One sentence.
616           Another sentence.
617
618       will result in two spaces after the period when the text is reflowed.
619       If you use two spaces after sentences anyway, this will be consistent,
620       although you will have to be careful to not end a line with an
621       abbreviation such as "e.g."  or "Ms.".  Output will also be consistent
622       if you use the *roff style guide (and XKCD 1285
623       <https://xkcd.com/1285/>) recommendation of putting a line break after
624       each sentence, although that will consistently produce two spaces after
625       each sentence, which may not be what you want.
626
627       If you prefer one space after sentences (which is the more modern
628       style), you will unfortunately need to ensure that no line in the
629       middle of a paragraph ends in a period or similar sentence-ending
630       paragraph.  Otherwise, nroff will add a two spaces after that sentence
631       when reflowing, and your output document will have inconsistent
632       spacing.
633
634   Hyphens
635       The handling of hyphens versus dashes is somewhat fragile, and one may
636       get a the wrong one under some circumstances.  This will normally only
637       matter for line breaking and possibly for troff output.
638

AUTHOR

640       Written by Russ Allbery <rra@cpan.org>, based on the original pod2man
641       by Tom Christiansen <tchrist@mox.perl.com>.
642
643       The modifications to work with Pod::Simple instead of Pod::Parser were
644       contributed by Sean Burke <sburke@cpan.org>, but I've since hacked them
645       beyond recognition and all bugs are mine.
646
648       Copyright 1999-2010, 2012-2020, 2022 Russ Allbery <rra@cpan.org>
649
650       Substantial contributions by Sean Burke <sburke@cpan.org>.
651
652       This program is free software; you may redistribute it and/or modify it
653       under the same terms as Perl itself.
654

SEE ALSO

656       Encode::Supported, Pod::Simple, perlpod(1), pod2man(1), nroff(1),
657       troff(1), man(1), man(7)
658
659       Ossanna, Joseph F., and Brian W. Kernighan.  "Troff User's Manual,"
660       Computing Science Technical Report No. 54, AT&T Bell Laboratories.
661       This is the best documentation of standard nroff and troff.  At the
662       time of this writing, it's available at <http://www.troff.org/54.pdf>.
663
664       The manual page documenting the man macro set may be man(5) instead of
665       man(7) on your system.
666
667       See perlpodstyle(1) for documentation on writing manual pages in POD if
668       you've not done it before and aren't familiar with the conventions.
669
670       The current version of this module is always available from its web
671       site at <https://www.eyrie.org/~eagle/software/podlators/>.  It is also
672       part of the Perl core distribution as of 5.6.0.
673
674
675
676perl v5.36.0                      2023-01-20                       Pod::Man(3)
Impressum