1 2=for comment 3This document is in Pod format. To read this, use a Pod formatter, 4like "perldoc perlpod". 5 6=head1 NAME 7X<POD> X<plain old documentation> 8 9perlpod - the Plain Old Documentation format 10 11=head1 DESCRIPTION 12 13Pod is a simple-to-use markup language used for writing documentation 14for Perl, Perl programs, and Perl modules. 15 16Translators are available for converting Pod to various formats 17like plain text, HTML, man pages, and more. 18 19Pod markup consists of three basic kinds of paragraphs: 20L<ordinary|/"Ordinary Paragraph">, 21L<verbatim|/"Verbatim Paragraph">, and 22L<command|/"Command Paragraph">. 23 24 25=head2 Ordinary Paragraph 26X<POD, ordinary paragraph> 27 28Most paragraphs in your documentation will be ordinary blocks 29of text, like this one. You can simply type in your text without 30any markup whatsoever, and with just a blank line before and 31after. When it gets formatted, it will undergo minimal formatting, 32like being rewrapped, probably put into a proportionally spaced 33font, and maybe even justified. 34 35You can use formatting codes in ordinary paragraphs, for B<bold>, 36I<italic>, C<code-style>, L<hyperlinks|perlfaq>, and more. Such 37codes are explained in the "L<Formatting Codes|/"Formatting Codes">" 38section, below. 39 40 41=head2 Verbatim Paragraph 42X<POD, verbatim paragraph> X<verbatim> 43 44Verbatim paragraphs are usually used for presenting a codeblock or 45other text which does not require any special parsing or formatting, 46and which shouldn't be wrapped. 47 48A verbatim paragraph is distinguished by having its first character 49be a space or a tab. (And commonly, all its lines begin with spaces 50and/or tabs.) It should be reproduced exactly, with tabs assumed to 51be on 8-column boundaries. There are no special formatting codes, 52so you can't italicize or anything like that. A \ means \, and 53nothing else. 54 55 56=head2 Command Paragraph 57X<POD, command> 58 59A command paragraph is used for special treatment of whole chunks 60of text, usually as headings or parts of lists. 61 62All command paragraphs (which are typically only one line long) start 63with "=", followed by an identifier, followed by arbitrary text that 64the command can use however it pleases. Currently recognized commands 65are 66 67 =pod 68 =head1 Heading Text 69 =head2 Heading Text 70 =head3 Heading Text 71 =head4 Heading Text 72 =head5 Heading Text 73 =head6 Heading Text 74 =over indentlevel 75 =item stuff 76 =back 77 =begin format 78 =end format 79 =for format text... 80 =encoding type 81 =cut 82 83To explain them each in detail: 84 85=over 86 87=item C<=head1 I<Heading Text>> 88X<=head1> X<=head2> X<=head3> X<=head4> X<=head5> X<=head6> 89X<head1> X<head2> X<head3> X<head4> X<head5> X<head6> 90 91=item C<=head2 I<Heading Text>> 92 93=item C<=head3 I<Heading Text>> 94 95=item C<=head4 I<Heading Text>> 96 97=item C<=head5 I<Heading Text>> 98 99=item C<=head6 I<Heading Text>> 100 101Head1 through head6 produce headings, head1 being the highest 102level. The text in the rest of this paragraph is the content of the 103heading. For example: 104 105 =head2 Object Attributes 106 107The text "Object Attributes" comprises the heading there. 108The text in these heading commands can use formatting codes, as seen here: 109 110 =head2 Possible Values for C<$/> 111 112Such commands are explained in the 113"L<Formatting Codes|/"Formatting Codes">" section, below. 114 115Note that C<head5> and C<head6> were introduced in 2020 and in 116L<Pod::Simple> 3.41, released in October 2020, so they might not be 117supported on the Pod parser you use. 118 119=item C<=over I<indentlevel>> 120X<=over> X<=item> X<=back> X<over> X<item> X<back> 121 122=item C<=item I<stuff...>> 123 124=item C<=back> 125 126Item, over, and back require a little more explanation: "=over" starts 127a region specifically for the generation of a list using "=item" 128commands, or for indenting (groups of) normal paragraphs. At the end 129of your list, use "=back" to end it. The I<indentlevel> option to 130"=over" indicates how far over to indent, generally in ems (where 131one em is the width of an "M" in the document's base font) or roughly 132comparable units; if there is no I<indentlevel> option, it defaults 133to four. (And some formatters may just ignore whatever I<indentlevel> 134you provide.) In the I<stuff> in C<=item I<stuff...>>, you may 135use formatting codes, as seen here: 136 137 =item Using C<$|> to Control Buffering 138 139Such commands are explained in the 140"L<Formatting Codes|/"Formatting Codes">" section, below. 141 142Note also that there are some basic rules to using "=over" ... 143"=back" regions: 144 145=over 146 147=item * 148 149Don't use "=item"s outside of an "=over" ... "=back" region. 150 151=item * 152 153The first thing after the "=over" command should be an "=item", unless 154there aren't going to be any items at all in this "=over" ... "=back" 155region. 156 157=item * 158 159Don't put "=headI<n>" commands inside an "=over" ... "=back" region. 160 161=item * 162 163And perhaps most importantly, keep the items consistent: either use 164"=item *" for all of them, to produce bullets; or use "=item 1.", 165"=item 2.", etc., to produce numbered lists; or use "=item foo", 166"=item bar", etc.--namely, things that look nothing like bullets or 167numbers. (If you have a list that contains both: 1) things that don't 168look like bullets nor numbers, plus 2) things that do, you should 169preface the bullet- or number-like items with C<ZE<lt>E<gt>>. See 170L<ZE<lt>E<gt>|/ZE<lt>E<gt> -- a null (zero-effect) formatting code> 171below for an example.) 172 173If you start with bullets or numbers, stick with them, as 174formatters use the first "=item" type to decide how to format the 175list. 176 177=back 178 179=item C<=cut> 180X<=cut> X<cut> 181 182To end a Pod block, use a blank line, 183then a line beginning with "=cut", and a blank 184line after it. This lets Perl (and the Pod formatter) know that 185this is where Perl code is resuming. (The blank line before the "=cut" 186is not technically necessary, but many older Pod processors require it.) 187 188=item C<=pod> 189X<=pod> X<pod> 190 191The "=pod" command by itself doesn't do much of anything, but it 192signals to Perl (and Pod formatters) that a Pod block starts here. A 193Pod block starts with I<any> command paragraph, so a "=pod" command is 194usually used just when you want to start a Pod block with an ordinary 195paragraph or a verbatim paragraph. For example: 196 197 =item stuff() 198 199 This function does stuff. 200 201 =cut 202 203 sub stuff { 204 ... 205 } 206 207 =pod 208 209 Remember to check its return value, as in: 210 211 stuff() || die "Couldn't do stuff!"; 212 213 =cut 214 215=item C<=begin I<formatname>> 216X<=begin> X<=end> X<=for> X<begin> X<end> X<for> 217 218=item C<=end I<formatname>> 219 220=item C<=for I<formatname> I<text...>> 221 222For, begin, and end will let you have regions of text/code/data that 223are not generally interpreted as normal Pod text, but are passed 224directly to particular formatters, or are otherwise special. A 225formatter that can use that format will use the region, otherwise it 226will be completely ignored. 227 228A command "=begin I<formatname>", some paragraphs, and a 229command "=end I<formatname>", mean that the text/data in between 230is meant for formatters that understand the special format 231called I<formatname>. For example, 232 233 =begin html 234 235 <hr> <img src="thang.png"> 236 <p> This is a raw HTML paragraph </p> 237 238 =end html 239 240The command "=for I<formatname> I<text...>" 241specifies that the remainder of just this paragraph (starting 242right after I<formatname>) is in that special format. 243 244 =for html <hr> <img src="thang.png"> 245 <p> This is a raw HTML paragraph </p> 246 247This means the same thing as the above "=begin html" ... "=end html" 248region. 249 250That is, with "=for", you can have only one paragraph's worth 251of text (i.e., the text in "=foo targetname text..."), but with 252"=begin targetname" ... "=end targetname", you can have any amount 253of stuff in between. (Note that there still must be a blank line 254after the "=begin" command and a blank line before the "=end" 255command.) 256 257Here are some examples of how to use these: 258 259 =begin html 260 261 <br>Figure 1.<br><IMG SRC="figure1.png"><br> 262 263 =end html 264 265 =begin text 266 267 --------------- 268 | foo | 269 | bar | 270 --------------- 271 272 ^^^^ Figure 1. ^^^^ 273 274 =end text 275 276Some format names that formatters currently are known to accept 277include "roff", "man", "latex", "tex", "text", and "html". (Some 278formatters will treat some of these as synonyms.) 279 280A format name of "comment" is common for just making notes (presumably 281to yourself) that won't appear in any formatted version of the Pod 282document: 283 284 =for comment 285 Make sure that all the available options are documented! 286 287Some I<formatnames> will require a leading colon (as in 288C<"=for :formatname">, or 289C<"=begin :formatname" ... "=end :formatname">), 290to signal that the text is not raw data, but instead I<is> Pod text 291(i.e., possibly containing formatting codes) that's just not for 292normal formatting (e.g., may not be a normal-use paragraph, but might 293be for formatting as a footnote). 294 295=item C<=encoding I<encodingname>> 296X<=encoding> X<encoding> 297 298This command is used for declaring the encoding of a document. Most 299users won't need this; but if your encoding isn't US-ASCII, 300then put a C<=encoding I<encodingname>> command very early in the document so 301that pod formatters will know how to decode the document. For 302I<encodingname>, use a name recognized by the L<Encode::Supported> 303module. Some pod formatters may try to guess between a Latin-1 or 304CP-1252 versus 305UTF-8 encoding, but they may guess wrong. It's best to be explicit if 306you use anything besides strict ASCII. Examples: 307 308 =encoding latin1 309 310 =encoding utf8 311 312 =encoding koi8-r 313 314 =encoding ShiftJIS 315 316 =encoding big5 317 318C<=encoding> affects the whole document, and must occur only once. 319 320=back 321 322And don't forget, all commands but C<=encoding> last up 323until the end of its I<paragraph>, not its line. So in the 324examples below, you can see that every command needs the blank 325line after it, to end its paragraph. (And some older Pod translators 326may require the C<=encoding> line to have a following blank line as 327well, even though it should be legal to omit.) 328 329Some examples of lists include: 330 331 =over 332 333 =item * 334 335 First item 336 337 =item * 338 339 Second item 340 341 =back 342 343 =over 344 345 =item Foo() 346 347 Description of Foo function 348 349 =item Bar() 350 351 Description of Bar function 352 353 =back 354 355 356=head2 Formatting Codes 357X<POD, formatting code> X<formatting code> 358X<POD, interior sequence> X<interior sequence> 359 360In ordinary paragraphs and in some command paragraphs, various 361formatting codes (a.k.a. "interior sequences") can be used: 362 363=for comment 364 "interior sequences" is such an opaque term. 365 Prefer "formatting codes" instead. 366 367=over 368 369=item C<IE<lt>textE<gt>> -- italic text 370X<I> X<< IZ<><> >> X<POD, formatting code, italic> X<italic> 371 372Used for emphasis ("C<be IE<lt>careful!E<gt>>") and parameters 373("C<redo IE<lt>LABELE<gt>>") 374 375=item C<BE<lt>textE<gt>> -- bold text 376X<B> X<< BZ<><> >> X<POD, formatting code, bold> X<bold> 377 378Used for switches ("C<perl's BE<lt>-nE<gt> switch>"), programs 379("C<some systems provide a BE<lt>chfnE<gt> for that>"), 380emphasis ("C<be BE<lt>careful!E<gt>>"), and so on 381("C<and that feature is known as BE<lt>autovivificationE<gt>>"). 382 383=item C<CE<lt>codeE<gt>> -- code text 384X<C> X<< CZ<><> >> X<POD, formatting code, code> X<code> 385 386Renders code in a typewriter font, or gives some other indication that 387this represents program text ("C<CE<lt>gmtime($^T)E<gt>>") or some other 388form of computerese ("C<CE<lt>drwxr-xr-xE<gt>>"). 389 390=item C<LE<lt>nameE<gt>> -- a hyperlink 391X<L> X<< LZ<><> >> X<POD, formatting code, hyperlink> X<hyperlink> 392 393There are various syntaxes, listed below. In the syntaxes given, 394C<text>, C<name>, and C<section> cannot contain the characters 395'/' and '|'; and any '<' or '>' should be matched. 396 397=over 398 399=item * 400 401C<LE<lt>nameE<gt>> 402 403Link to a Perl manual page (e.g., C<LE<lt>Net::PingE<gt>>). Note 404that C<name> should not contain spaces. This syntax 405is also occasionally used for references to Unix man pages, as in 406C<LE<lt>crontab(5)E<gt>>. 407 408=item * 409 410C<LE<lt>name/"sec"E<gt>> or C<LE<lt>name/secE<gt>> 411 412Link to a section in other manual page. E.g., 413C<LE<lt>perlsyn/"For Loops"E<gt>> 414 415=item * 416 417C<LE<lt>/"sec"E<gt>> or C<LE<lt>/secE<gt>> 418 419Link to a section in this manual page. E.g., 420C<LE<lt>/"Object Methods"E<gt>> 421 422=back 423 424A section is started by the named heading or item. For 425example, C<LE<lt>perlvar/$.E<gt>> or C<LE<lt>perlvar/"$."E<gt>> both 426link to the section started by "C<=item $.>" in perlvar. And 427C<LE<lt>perlsyn/For LoopsE<gt>> or C<LE<lt>perlsyn/"For Loops"E<gt>> 428both link to the section started by "C<=head2 For Loops>" 429in perlsyn. 430 431To control what text is used for display, you 432use "C<LE<lt>text|...E<gt>>", as in: 433 434=over 435 436=item * 437 438C<LE<lt>text|nameE<gt>> 439 440Link this text to that manual page. E.g., 441C<LE<lt>Perl Error Messages|perldiagE<gt>> 442 443=item * 444 445C<LE<lt>text|name/"sec"E<gt>> or C<LE<lt>text|name/secE<gt>> 446 447Link this text to that section in that manual page. E.g., 448C<LE<lt>postfix "if"|perlsyn/"Statement Modifiers"E<gt>> 449 450=item * 451 452C<LE<lt>text|/"sec"E<gt>> or C<LE<lt>text|/secE<gt>> 453or C<LE<lt>text|"sec"E<gt>> 454 455Link this text to that section in this manual page. E.g., 456C<LE<lt>the various attributes|/"Member Data"E<gt>> 457 458=back 459 460Or you can link to a web page: 461 462=over 463 464=item * 465 466C<LE<lt>scheme:...E<gt>> 467 468C<LE<lt>text|scheme:...E<gt>> 469 470Links to an absolute URL. For example, C<LE<lt>http://www.perl.org/E<gt>> or 471C<LE<lt>The Perl Home Page|http://www.perl.org/E<gt>>. 472 473=back 474 475=item C<EE<lt>escapeE<gt>> -- a character escape 476X<E> X<< EZ<><> >> X<POD, formatting code, escape> X<escape> 477 478Very similar to HTML/XML C<&I<foo>;> "entity references": 479 480=over 481 482=item * 483 484C<EE<lt>ltE<gt>> -- a literal E<lt> (less than) 485 486=item * 487 488C<EE<lt>gtE<gt>> -- a literal E<gt> (greater than) 489 490=item * 491 492C<EE<lt>verbarE<gt>> -- a literal | (I<ver>tical I<bar>) 493 494=item * 495 496C<EE<lt>solE<gt>> -- a literal / (I<sol>idus) 497 498The above four are optional except in other formatting codes, 499notably C<LE<lt>...E<gt>>, and when preceded by a 500capital letter. 501 502=item * 503 504C<EE<lt>htmlnameE<gt>> 505 506Some non-numeric HTML entity name, such as C<EE<lt>eacuteE<gt>>, 507meaning the same thing as C<é> in HTML -- i.e., a lowercase 508e with an acute (/-shaped) accent. 509 510=item * 511 512C<EE<lt>numberE<gt>> 513 514The ASCII/Latin-1/Unicode character with that number. A 515leading "0x" means that I<number> is hex, as in 516C<EE<lt>0x201EE<gt>>. A leading "0" means that I<number> is octal, 517as in C<EE<lt>075E<gt>>. Otherwise I<number> is interpreted as being 518in decimal, as in C<EE<lt>181E<gt>>. 519 520Note that older Pod formatters might not recognize octal or 521hex numeric escapes, and that many formatters cannot reliably 522render characters above 255. (Some formatters may even have 523to use compromised renderings of Latin-1/CP-1252 characters, like 524rendering C<EE<lt>eacuteE<gt>> as just a plain "e".) 525 526=back 527 528=item C<FE<lt>filenameE<gt>> -- used for filenames 529X<F> X<< FZ<><> >> X<POD, formatting code, filename> X<filename> 530 531Typically displayed in italics. Example: "C<FE<lt>.cshrcE<gt>>" 532 533=item C<SE<lt>textE<gt>> -- text contains non-breaking spaces 534X<S> X<< SZ<><> >> X<POD, formatting code, non-breaking space> 535X<non-breaking space> 536 537This means that the words in I<text> should not be broken 538across lines. Example: S<C<SE<lt>$x ? $y : $zE<gt>>>. 539 540=item C<XE<lt>topic nameE<gt>> -- an index entry 541X<X> X<< XZ<><> >> X<POD, formatting code, index entry> X<index entry> 542 543This is ignored by most formatters, but some may use it for building 544indexes. It always renders as empty-string. 545Example: C<XE<lt>absolutizing relative URLsE<gt>> 546 547=item C<ZE<lt>E<gt>> -- a null (zero-effect) formatting code 548X<Z> X<< ZZ<><> >> X<POD, formatting code, null> X<null> 549 550This is rarely used. It's one way to get around using an 551EE<lt>...E<gt> code sometimes. For example, instead of 552"C<NEE<lt>ltE<gt>3>" (for "NE<lt>3") you could write 553"C<NZE<lt>E<gt>E<lt>3>" (the "ZE<lt>E<gt>" breaks up the "N" and 554the "E<lt>" so they can't be considered 555the part of a (fictitious) "NE<lt>...E<gt>" code). 556 557Another use is to indicate that I<stuff> in C<=item ZE<lt>E<gt>I<stuff...>> 558is not to be considered to be a bullet or number. For example, 559without the C<ZE<lt>E<gt>>, the line 560 561 =item Z<>500 Server error 562 563could possibly be parsed as an item in a numbered list when it isn't 564meant to be. 565 566Still another use is to maintain visual space between C<=item> lines. 567If you specify 568 569 =item foo 570 571 =item bar 572 573it will typically get rendered as 574 575 foo 576 bar 577 578That may be what you want, but if what you really want is 579 580 foo 581 582 bar 583 584you can use C<ZE<lt>E<gt>> to accomplish that 585 586 =item foo 587 588 Z<> 589 590 =item bar 591 592=for comment 593 This was formerly explained as a "zero-width character". But it in 594 most parser models, it parses to nothing at all, as opposed to parsing 595 as if it were a E<zwnj> or E<zwj>, which are REAL zero-width characters. 596 So "width" and "character" are exactly the wrong words. 597 598=back 599 600Most of the time, you will need only a single set of angle brackets to 601delimit the beginning and end of formatting codes. However, 602sometimes you will want to put a real right angle bracket (a 603greater-than sign, '>') inside of a formatting code. This is particularly 604common when using a formatting code to provide a different font-type for a 605snippet of code. As with all things in Perl, there is more than 606one way to do it. One way is to simply escape the closing bracket 607using an C<E> code: 608 609 C<$a E<lt>=E<gt> $b> 610 611This will produce: "C<$a E<lt>=E<gt> $b>" 612 613A more readable, and perhaps more "plain" way is to use an alternate 614set of delimiters that doesn't require a single ">" to be escaped. 615Doubled angle brackets ("<<" and ">>") may be used I<if and only if there is 616whitespace right after the opening delimiter and whitespace right 617before the closing delimiter!> For example, the following will 618do the trick: 619X<POD, formatting code, escaping with multiple brackets> 620 621 C<< $a <=> $b >> 622 623In fact, you can use as many repeated angle-brackets as you like so 624long as you have the same number of them in the opening and closing 625delimiters, and make sure that whitespace immediately follows the last 626'<' of the opening delimiter, and immediately precedes the first '>' 627of the closing delimiter. (The whitespace is ignored.) So the 628following will also work: 629X<POD, formatting code, escaping with multiple brackets> 630 631 C<<< $a <=> $b >>> 632 C<<<< $a <=> $b >>>> 633 634And they all mean exactly the same as this: 635 636 C<$a E<lt>=E<gt> $b> 637 638The multiple-bracket form does not affect the interpretation of the contents of 639the formatting code, only how it must end. That means that the examples above 640are also exactly the same as this: 641 642 C<< $a E<lt>=E<gt> $b >> 643 644As a further example, this means that if you wanted to put these bits of 645code in C<C> (code) style: 646 647 open(X, ">>thing.dat") || die $! 648 $foo->bar(); 649 650you could do it like so: 651 652 C<<< open(X, ">>thing.dat") || die $! >>> 653 C<< $foo->bar(); >> 654 655which is presumably easier to read than the old way: 656 657 C<open(X, "E<gt>E<gt>thing.dat") || die $!> 658 C<$foo-E<gt>bar();> 659 660This is currently supported by pod2text (Pod::Text), pod2man (Pod::Man), 661and any other pod2xxx or Pod::Xxxx translators that use 662Pod::Parser 1.093 or later, or Pod::Tree 1.02 or later. 663 664=head2 The Intent 665X<POD, intent of> 666 667The intent is simplicity of use, not power of expression. Paragraphs 668look like paragraphs (block format), so that they stand out 669visually, and so that I could run them through C<fmt> easily to reformat 670them (that's F7 in my version of B<vi>, or Esc Q in my version of 671B<emacs>). I wanted the translator to always leave the C<'> and C<`> and 672C<"> quotes alone, in verbatim mode, so I could slurp in a 673working program, shift it over four spaces, and have it print out, er, 674verbatim. And presumably in a monospace font. 675 676The Pod format is not necessarily sufficient for writing a book. Pod 677is just meant to be an idiot-proof common source for nroff, HTML, 678TeX, and other markup languages, as used for online 679documentation. Translators exist for B<pod2text>, B<pod2html>, 680B<pod2man> (that's for nroff(1) and troff(1)), B<pod2latex>, and 681B<pod2fm>. Various others are available in CPAN. 682 683 684=head2 Embedding Pods in Perl Modules 685X<POD, embedding> 686 687You can embed Pod documentation in your Perl modules and scripts. Start 688your documentation with an empty line, a "=head1" command at the 689beginning, and end it with a "=cut" command and an empty line. The 690B<perl> executable will ignore the Pod text. You can place a Pod 691statement where B<perl> expects the beginning of a new statement, but 692not within a statement, as that would result in an error. See any of 693the supplied library modules for examples. 694 695If you're going to put your Pod at the end of the file, and you're using 696an C<__END__> or C<__DATA__> cut mark, make sure to put an empty line there 697before the first Pod command. 698 699 __END__ 700 701 =head1 NAME 702 703 Time::Local - efficiently compute time from local and GMT time 704 705Without that empty line before the "=head1", many translators wouldn't 706have recognized the "=head1" as starting a Pod block. 707 708=head2 Hints for Writing Pod 709 710=over 711 712=item * 713X<podchecker> X<POD, validating> 714 715The B<podchecker> command is provided for checking Pod syntax for errors 716and warnings. For example, it checks for completely blank lines in 717Pod blocks and for unknown commands and formatting codes. You should 718still also pass your document through one or more translators and proofread 719the result, or print out the result and proofread that. Some of the 720problems found may be bugs in the translators, which you may or may not 721wish to work around. 722 723=item * 724 725If you're more familiar with writing in HTML than with writing in Pod, you 726can try your hand at writing documentation in simple HTML, and converting 727it to Pod with the experimental L<Pod::HTML2Pod|Pod::HTML2Pod> module, 728(available in CPAN), and looking at the resulting code. The experimental 729L<Pod::PXML|Pod::PXML> module in CPAN might also be useful. 730 731=item * 732 733Many older Pod translators require the lines before every Pod 734command and after every Pod command (including "=cut"!) to be a blank 735line. Having something like this: 736 737 # - - - - - - - - - - - - 738 =item $firecracker->boom() 739 740 This noisily detonates the firecracker object. 741 =cut 742 sub boom { 743 ... 744 745...will make such Pod translators completely fail to see the Pod block 746at all. 747 748Instead, have it like this: 749 750 # - - - - - - - - - - - - 751 752 =item $firecracker->boom() 753 754 This noisily detonates the firecracker object. 755 756 =cut 757 758 sub boom { 759 ... 760 761=item * 762 763Some older Pod translators require paragraphs (including command 764paragraphs like "=head2 Functions") to be separated by I<completely> 765empty lines. If you have an apparently empty line with some spaces 766on it, this might not count as a separator for those translators, and 767that could cause odd formatting. 768 769=item * 770 771Older translators might add wording around an LE<lt>E<gt> link, so that 772C<LE<lt>Foo::BarE<gt>> may become "the Foo::Bar manpage", for example. 773So you shouldn't write things like C<the LE<lt>fooE<gt> 774documentation>, if you want the translated document to read sensibly. 775Instead, write C<the LE<lt>Foo::Bar|Foo::BarE<gt> documentation> or 776C<LE<lt>the Foo::Bar documentation|Foo::BarE<gt>>, to control how the 777link comes out. 778 779=item * 780 781Going past the 70th column in a verbatim block might be ungracefully 782wrapped by some formatters. 783 784=back 785 786=head1 SEE ALSO 787 788L<perlpodspec>, L<perlsyn/"PODs: Embedded Documentation">, 789L<perlnewmod>, L<perldoc>, L<pod2html>, L<pod2man>, L<podchecker>. 790 791=head1 AUTHOR 792 793Larry Wall, Sean M. Burke 794 795=cut 796