@@ -7098,9 +7098,9 @@ B<perl> B<-MO=Deparse>[B<,-d>][B<,-f>I<FILE>][B<,-p>][B<,-q>][B<,-l>]
70987098
70997099=head1 DESCRIPTION
71007100
7101- B::Deparse is a backend module for the Perl compiler that generates
7101+ C< B::Deparse > is a backend module for the Perl compiler that generates
71027102perl source code, based on the internal compiled structure that perl
7103- itself creates after parsing a program. The output of B::Deparse won't
7103+ itself creates after parsing a program. The output of C< B::Deparse > won't
71047104be exactly the same as the original source, since perl doesn't keep
71057105track of comments or whitespace, and there isn't a one-to-one
71067106correspondence between perl's syntactical constructions and their
@@ -7109,34 +7109,34 @@ option, the output also includes parentheses even when they are not
71097109required by precedence, which can make it easy to see if perl is
71107110parsing your expressions the way you intended.
71117111
7112- While B::Deparse goes to some lengths to try to figure out what your
7112+ While C< B::Deparse > goes to some lengths to try to figure out what your
71137113original program was doing, some parts of the language can still trip
71147114it up; it still fails even on some parts of Perl's own test suite. If
71157115you encounter a failure other than the most common ones described in
7116- the BUGS section below, you can help contribute to B::Deparse's
7116+ the BUGS section below, you can help contribute to C< B::Deparse > 's
71177117ongoing development by submitting a bug report with a small
71187118example.
71197119
71207120=head1 OPTIONS
71217121
71227122As with all compiler backend options, these must follow directly after
7123- the ' -MO=Deparse' , separated by a comma but not any white space.
7123+ the C< -MO=Deparse > , separated by a comma but not any white space.
71247124
71257125=over 4
71267126
71277127=item B<-d >
71287128
7129- Output data values (when they appear as constants) using Data::Dumper.
7130- Without this option, B::Deparse will use some simple routines of its
7131- own for the same purpose. Currently, Data::Dumper is better for some
7129+ Output data values (when they appear as constants) using L< Data::Dumper> .
7130+ Without this option, C< B::Deparse > will use some simple routines of its
7131+ own for the same purpose. Currently, L< Data::Dumper> is better for some
71327132kinds of data (such as complex structures with sharing and
71337133self-reference) while the built-in routines are better for others
71347134(such as odd floating-point values).
71357135
71367136=item B<-f >I<FILE >
71377137
7138- Normally, B::Deparse deparses the main code of a program, and all the subs
7139- defined in the same file. To include subs defined in
7138+ Normally, C< B::Deparse > deparses the main code of a program, and all the
7139+ subs defined in the same file. To include subs defined in
71407140other files, pass the B<-f > option with the filename.
71417141You can pass the B<-f > option several times, to
71427142include more than one secondary file. (Most of the time you don't want to
@@ -7145,12 +7145,12 @@ defined in the scope of a B<#line> directive with two parameters.
71457145
71467146=item B<-l >
71477147
7148- Add ' #line' declarations to the output based on the line and file
7148+ Add C< #line > declarations to the output based on the line and file
71497149locations of the original code.
71507150
71517151=item B<-p >
71527152
7153- Print extra parentheses. Without this option, B::Deparse includes
7153+ Print extra parentheses. Without this option, C< B::Deparse > includes
71547154parentheses in its output only when they are needed, based on the
71557155structure of your program. With B<-p > , it uses parentheses (almost)
71567156whenever they would be legal. This can be useful if you are used to
@@ -7190,8 +7190,8 @@ making clear how the parameters are actually passed to C<foo>.
71907190=item B<-q >
71917191
71927192Expand double-quoted strings into the corresponding combinations of
7193- concatenation, uc, ucfirst, lc, lcfirst, quotemeta, and join. For
7194- instance, print
7193+ concatenation, C< uc > , C< ucfirst > , C< lc > , C< lcfirst > , C< quotemeta > , and
7194+ C< join > . For instance, print
71957195
71967196 print "Hello, $world, @ladies, \u$gentlemen\E, \u\L$me!";
71977197
@@ -7202,13 +7202,13 @@ as
72027202
72037203Note that the expanded form represents the way perl handles such
72047204constructions internally -- this option actually turns off the reverse
7205- translation that B::Deparse usually does. On the other hand, note that
7205+ translation that C< B::Deparse > usually does. On the other hand, note that
72067206C<$x = "$y" > is not the same as C<$x = $y > : the former makes the value
7207- of $y into a string before doing the assignment.
7207+ of C< $y > into a string before doing the assignment.
72087208
72097209=item B<-s >I<LETTERS >
72107210
7211- Tweak the style of B::Deparse's output. The letters should follow
7211+ Tweak the style of C< B::Deparse > 's output. The letters should follow
72127212directly after the 's', with no space or punctuation. The following
72137213options are available:
72147214
@@ -7258,7 +7258,7 @@ conventional values include 0, 1, 42, '', 'foo', and
72587258'Useless use of constant omitted' (which may need to be
72597259B<-sv"'Useless use of constant omitted'." >
72607260or something similar depending on your shell). The default is '???'.
7261- If you're using B::Deparse on a module or other file that's require'd,
7261+ If you're using C< B::Deparse > on a module or other file that's C< require > 'd,
72627262you shouldn't use a value that evaluates to false, since the customary
72637263true constant at the end of a module will be in void context when the
72647264file is compiled as a main program.
@@ -7270,7 +7270,7 @@ file is compiled as a main program.
72707270Expand conventional syntax constructions into equivalent ones that expose
72717271their internal operation. I<LEVEL > should be a digit, with higher values
72727272meaning more expansion. As with B<-q > , this actually involves turning off
7273- special cases in B::Deparse's normal operations.
7273+ special cases in C< B::Deparse > 's normal operations.
72747274
72757275If I<LEVEL > is at least 3, C<for > loops will be translated into equivalent
72767276while loops with continue blocks; for instance
@@ -7327,7 +7327,7 @@ turns into
73277327 $nice ? do { print 'hi' } : do { print 'bye' };
73287328
73297329Long sequences of elsifs will turn into nested ternary operators, which
7330- B::Deparse doesn't know how to indent nicely.
7330+ C< B::Deparse > doesn't know how to indent nicely.
73317331
73327332=back
73337333
@@ -7342,7 +7342,7 @@ B::Deparse doesn't know how to indent nicely.
73427342
73437343=head2 Description
73447344
7345- B::Deparse can also be used on a sub-by-sub basis from other perl
7345+ C< B::Deparse > can also be used on a sub-by-sub basis from other perl
73467346programs.
73477347
73487348=head2 new
@@ -7393,15 +7393,16 @@ use re;
73937393
73947394=back
73957395
7396- Ordinarily, if you use B::Deparse on a subroutine which has
7396+ Ordinarily, if you use C< B::Deparse > on a subroutine which has
73977397been compiled in the presence of one or more of these pragmas,
73987398the output will include statements to turn on the appropriate
7399- directives. So if you then compile the code returned by coderef2text,
7400- it will behave the same way as the subroutine which you deparsed.
7399+ directives. So if you then compile the code returned by
7400+ L</coderef2text> , it will behave the same way as the subroutine
7401+ which you deparsed.
74017402
74027403However, you may know that you intend to use the results in a
74037404particular context, where some pragmas are already in scope. In
7404- this case, you use the B< ambient_pragmas > method to describe the
7405+ this case, you use the L</ ambient_pragmas> method to describe the
74057406assumptions you wish to make.
74067407
74077408Not all of the options currently have any useful effect. See
@@ -7421,7 +7422,7 @@ expect.
74217422
74227423=item $[
74237424
7424- Takes a number, the value of the array base $[ .
7425+ Takes a number, the value of the array base C< $[ > .
74257426Obsolete: cannot be non-zero.
74267427
74277428=item bytes
@@ -7468,7 +7469,7 @@ See L<warnings> for more information about lexical warnings.
74687469=item warning_bits
74697470
74707471These two parameters are used to specify the ambient pragmas in
7471- the format used by the special variables $^H and ${^WARNING_BITS}.
7472+ the format used by the special variables C< $^H > and C< ${^WARNING_BITS} > .
74727473
74737474They exist principally so that you can write code like:
74747475
@@ -7526,7 +7527,7 @@ C<use strict>, C<use bytes>, C<use integer>
75267527and C<use feature > .
75277528
75287529Excepting those listed above, we're currently unable to guarantee that
7529- B::Deparse will produce a pragma at the correct point in the program.
7530+ C< B::Deparse > will produce a pragma at the correct point in the program.
75307531(Specifically, pragmas at the beginning of a block often appear right
75317532before the start of the block instead.)
75327533Since the effects of pragmas are often lexically scoped, this can mean
@@ -7536,16 +7537,16 @@ than in the input file.
75367537=item *
75377538
75387539In fact, the above is a specific instance of a more general problem:
7539- we can't guarantee to produce BEGIN blocks or C<use > declarations in
7540+ we can't guarantee to produce C< BEGIN > blocks or C<use > declarations in
75407541exactly the right place. So if you use a module which affects compilation
75417542(such as by over-riding keywords, overloading constants or whatever)
75427543then the output code might not work as intended.
75437544
75447545=item *
75457546
75467547Some constants don't print correctly either with or without B<-d > .
7547- For instance, neither B::Deparse nor Data::Dumper know how to print
7548- dual-valued scalars correctly, as in:
7548+ For instance, neither C< B::Deparse > nor L< Data::Dumper> know how to
7549+ print dual-valued scalars correctly, as in:
75497550
75507551 use constant E2BIG => ($!=7); $y = E2BIG; print $y, 0+$y;
75517552
@@ -7575,7 +7576,7 @@ which is not, consequently, deparsed correctly.
75757576=item *
75767577
75777578Lexical (my) variables declared in scopes external to a subroutine
7578- appear in coderef2text output text as package variables. This is a tricky
7579+ appear in L</ coderef2text> output text as package variables. This is a tricky
75797580problem, as perl has no native facility for referring to a lexical variable
75807581defined within a different scope, although L<PadWalker> is a good start.
75817582
0 commit comments