This is a raw HTML paragraph
=end html The command "=for IThis is a raw HTML paragraph
This means the same thing as the above "=begin html" ... "=end html" region. That is, with "=for", you can have only one paragraph's worth of text (i.e., the text in "=foo targetname text..."), but with "=begin targetname" ... "=end targetname", you can have any amount of stuff inbetween. (Note that there still must be a blank line after the "=begin" command and a blank line before the "=end" command. Here are some examples of how to use these: =begin html
Renders code in a typewriter font, or gives some other indication that
this represents program text ("Cgmtime($^T)E>") or some other
form of computerese ("Cdrwxr-xr-xE>").
=item CnameE> -- a hyperlink
X X<< LZ<><> >> X X
There are various syntaxes, listed below. In the syntaxes given,
C, C, and C cannot contain the characters
'/' and '|'; and any '<' or '>' should be matched.
=over
=item *
CnameE>
Link to a Perl manual page (e.g., CNet::PingE>). Note
that C should not contain spaces. This syntax
is also occasionally used for references to UNIX man pages, as in
Ccrontab(5)E>.
=item *
Cname/"sec"E> or Cname/secE>
Link to a section in other manual page. E.g.,
Cperlsyn/"For Loops"E>
=item *
C/"sec"E> or C/secE>
Link to a section in this manual page. E.g.,
C/"Object Methods"E>
=back
A section is started by the named heading or item. For
example, Cperlvar/$.E> or Cperlvar/"$."E> both
link to the section started by "C<=item $.>" in perlvar. And
Cperlsyn/For LoopsE> or Cperlsyn/"For Loops"E>
both link to the section started by "C<=head2 For Loops>"
in perlsyn.
To control what text is used for display, you
use "Ctext|...E>", as in:
=over
=item *
Ctext|nameE>
Link this text to that manual page. E.g.,
CPerl Error Messages|perldiagE>
=item *
Ctext|name/"sec"E> or Ctext|name/secE>
Link this text to that section in that manual page. E.g.,
Cpostfix "if"|perlsyn/"Statement Modifiers"E>
=item *
Ctext|/"sec"E> or Ctext|/secE>
or Ctext|"sec"E>
Link this text to that section in this manual page. E.g.,
Cthe various attributes|/"Member Data"E>
=back
Or you can link to a web page:
=over
=item *
Cscheme:...E>
Ctext|scheme:...E>
Links to an absolute URL. For example, Chttp://www.perl.org/E> or
CThe Perl Home Page|http://www.perl.org/E>.
=back
=item CescapeE> -- a character escape
X X<< EZ<><> >> X X
Very similar to HTML/XML C<&I;> "entity references":
=over
=item *
CltE> -- a literal E (less than)
=item *
CgtE> -- a literal E (greater than)
=item *
CverbarE> -- a literal | (Itical I)
=item *
CsolE> = a literal / (Iidus)
The above four are optional except in other formatting codes,
notably C...E>, and when preceded by a
capital letter.
=item *
ChtmlnameE>
Some non-numeric HTML entity name, such as CeacuteE>,
meaning the same thing as C<é> in HTML -- i.e., a lowercase
e with an acute (/-shaped) accent.
=item *
CnumberE>
The ASCII/Latin-1/Unicode character with that number. A
leading "0x" means that I is hex, as in
C0x201EE>. A leading "0" means that I is octal,
as in C075E>. Otherwise I is interpreted as being
in decimal, as in C181E>.
Note that older Pod formatters might not recognize octal or
hex numeric escapes, and that many formatters cannot reliably
render characters above 255. (Some formatters may even have
to use compromised renderings of Latin-1 characters, like
rendering CeacuteE> as just a plain "e".)
=back
=item CfilenameE> -- used for filenames
X X<< FZ<><> >> X X
Typically displayed in italics. Example: "C.cshrcE>"
=item CtextE> -- text contains non-breaking spaces
X X<< SZ<><> >> X
X
This means that the words in I should not be broken
across lines. Example: S$x ? $y : $zE>>.
=item Ctopic nameE> -- an index entry
X X<< XZ<><> >> X X
This is ignored by most formatters, but some may use it for building
indexes. It always renders as empty-string.
Example: Cabsolutizing relative URLsE>
=item CE> -- a null (zero-effect) formatting code
X X<< ZZ<><> >> X X
This is rarely used. It's one way to get around using an
EE...E code sometimes. For example, instead of
"CltE3>" (for "NE3") you could write
"CEE3>" (the "ZEE" breaks up the "N" and
the "E" so they can't be considered
the part of a (fictitious) "NE...E" code.
=for comment
This was formerly explained as a "zero-width character". But it in
most parser models, it parses to nothing at all, as opposed to parsing
as if it were a E or E, which are REAL zero-width characters.
So "width" and "character" are exactly the wrong words.
=back
Most of the time, you will need only a single set of angle brackets to
delimit the beginning and end of formatting codes. However,
sometimes you will want to put a real right angle bracket (a
greater-than sign, '>') inside of a formatting code. This is particularly
common when using a formatting code to provide a different font-type for a
snippet of code. As with all things in Perl, there is more than
one way to do it. One way is to simply escape the closing bracket
using an C code:
C<$a E=E $b>
This will produce: "C<$a E=E $b>"
A more readable, and perhaps more "plain" way is to use an alternate
set of delimiters that doesn't require a single ">" to be escaped. With
the Pod formatters that are standard starting with perl5.5.660, doubled
angle brackets ("<<" and ">>") may be used I For example, the following will
do the trick:
X
C<< $a <=> $b >>
In fact, you can use as many repeated angle-brackets as you like so
long as you have the same number of them in the opening and closing
delimiters, and make sure that whitespace immediately follows the last
'<' of the opening delimiter, and immediately precedes the first '>'
of the closing delimiter. (The whitespace is ignored.) So the
following will also work:
X
C<<< $a <=> $b >>>
C<<<< $a <=> $b >>>>
And they all mean exactly the same as this:
C<$a E=E $b>
As a further example, this means that if you wanted to put these bits of
code in C (code) style:
open(X, ">>thing.dat") || die $!
$foo->bar();
you could do it like so:
C<<< open(X, ">>thing.dat") || die $! >>>
C<< $foo->bar(); >>
which is presumably easier to read than the old way:
CEthing.dat") || die $!>
C<$foo-Ebar();>
This is currently supported by pod2text (Pod::Text), pod2man (Pod::Man),
and any other pod2xxx or Pod::Xxxx translators that use
Pod::Parser 1.093 or later, or Pod::Tree 1.02 or later.
=head2 The Intent
X
The intent is simplicity of use, not power of expression. Paragraphs
look like paragraphs (block format), so that they stand out
visually, and so that I could run them through C easily to reformat
them (that's F7 in my version of B, or Esc Q in my version of
B