@@ -7009,9 +7009,9 @@ B<perl> B<-MO=Deparse>[B<,-d>][B<,-f>I<FILE>][B<,-p>][B<,-q>][B<,-l>]
70097009
70107010=head1 DESCRIPTION
70117011
7012- B::Deparse is a backend module for the Perl compiler that generates
7012+ C< B::Deparse > is a backend module for the Perl compiler that generates
70137013perl source code, based on the internal compiled structure that perl
7014- itself creates after parsing a program. The output of B::Deparse won't
7014+ itself creates after parsing a program. The output of C< B::Deparse > won't
70157015be exactly the same as the original source, since perl doesn't keep
70167016track of comments or whitespace, and there isn't a one-to-one
70177017correspondence between perl's syntactical constructions and their
@@ -7020,34 +7020,34 @@ option, the output also includes parentheses even when they are not
70207020required by precedence, which can make it easy to see if perl is
70217021parsing your expressions the way you intended.
70227022
7023- While B::Deparse goes to some lengths to try to figure out what your
7023+ While C< B::Deparse > goes to some lengths to try to figure out what your
70247024original program was doing, some parts of the language can still trip
70257025it up; it still fails even on some parts of Perl's own test suite. If
70267026you encounter a failure other than the most common ones described in
7027- the BUGS section below, you can help contribute to B::Deparse's
7027+ the BUGS section below, you can help contribute to C< B::Deparse > 's
70287028ongoing development by submitting a bug report with a small
70297029example.
70307030
70317031=head1 OPTIONS
70327032
70337033As with all compiler backend options, these must follow directly after
7034- the ' -MO=Deparse' , separated by a comma but not any white space.
7034+ the C< -MO=Deparse > , separated by a comma but not any white space.
70357035
70367036=over 4
70377037
70387038=item B<-d >
70397039
7040- Output data values (when they appear as constants) using Data::Dumper.
7041- Without this option, B::Deparse will use some simple routines of its
7042- own for the same purpose. Currently, Data::Dumper is better for some
7040+ Output data values (when they appear as constants) using L< Data::Dumper> .
7041+ Without this option, C< B::Deparse > will use some simple routines of its
7042+ own for the same purpose. Currently, L< Data::Dumper> is better for some
70437043kinds of data (such as complex structures with sharing and
70447044self-reference) while the built-in routines are better for others
70457045(such as odd floating-point values).
70467046
70477047=item B<-f >I<FILE >
70487048
7049- Normally, B::Deparse deparses the main code of a program, and all the subs
7050- defined in the same file. To include subs defined in
7049+ Normally, C< B::Deparse > deparses the main code of a program, and all the
7050+ subs defined in the same file. To include subs defined in
70517051other files, pass the B<-f > option with the filename.
70527052You can pass the B<-f > option several times, to
70537053include more than one secondary file. (Most of the time you don't want to
@@ -7056,12 +7056,12 @@ defined in the scope of a B<#line> directive with two parameters.
70567056
70577057=item B<-l >
70587058
7059- Add ' #line' declarations to the output based on the line and file
7059+ Add C< #line > declarations to the output based on the line and file
70607060locations of the original code.
70617061
70627062=item B<-p >
70637063
7064- Print extra parentheses. Without this option, B::Deparse includes
7064+ Print extra parentheses. Without this option, C< B::Deparse > includes
70657065parentheses in its output only when they are needed, based on the
70667066structure of your program. With B<-p > , it uses parentheses (almost)
70677067whenever they would be legal. This can be useful if you are used to
@@ -7101,8 +7101,8 @@ making clear how the parameters are actually passed to C<foo>.
71017101=item B<-q >
71027102
71037103Expand double-quoted strings into the corresponding combinations of
7104- concatenation, uc, ucfirst, lc, lcfirst, quotemeta, and join. For
7105- instance, print
7104+ concatenation, C< uc > , C< ucfirst > , C< lc > , C< lcfirst > , C< quotemeta > , and
7105+ C< join > . For instance, print
71067106
71077107 print "Hello, $world, @ladies, \u$gentlemen\E, \u\L$me!";
71087108
@@ -7113,13 +7113,13 @@ as
71137113
71147114Note that the expanded form represents the way perl handles such
71157115constructions internally -- this option actually turns off the reverse
7116- translation that B::Deparse usually does. On the other hand, note that
7116+ translation that C< B::Deparse > usually does. On the other hand, note that
71177117C<$x = "$y" > is not the same as C<$x = $y > : the former makes the value
7118- of $y into a string before doing the assignment.
7118+ of C< $y > into a string before doing the assignment.
71197119
71207120=item B<-s >I<LETTERS >
71217121
7122- Tweak the style of B::Deparse's output. The letters should follow
7122+ Tweak the style of C< B::Deparse > 's output. The letters should follow
71237123directly after the 's', with no space or punctuation. The following
71247124options are available:
71257125
@@ -7169,7 +7169,7 @@ conventional values include 0, 1, 42, '', 'foo', and
71697169'Useless use of constant omitted' (which may need to be
71707170B<-sv"'Useless use of constant omitted'." >
71717171or something similar depending on your shell). The default is '???'.
7172- If you're using B::Deparse on a module or other file that's require'd,
7172+ If you're using C< B::Deparse > on a module or other file that's C< require > 'd,
71737173you shouldn't use a value that evaluates to false, since the customary
71747174true constant at the end of a module will be in void context when the
71757175file is compiled as a main program.
@@ -7181,7 +7181,7 @@ file is compiled as a main program.
71817181Expand conventional syntax constructions into equivalent ones that expose
71827182their internal operation. I<LEVEL > should be a digit, with higher values
71837183meaning more expansion. As with B<-q > , this actually involves turning off
7184- special cases in B::Deparse's normal operations.
7184+ special cases in C< B::Deparse > 's normal operations.
71857185
71867186If I<LEVEL > is at least 3, C<for > loops will be translated into equivalent
71877187while loops with continue blocks; for instance
@@ -7238,7 +7238,7 @@ turns into
72387238 $nice ? do { print 'hi' } : do { print 'bye' };
72397239
72407240Long sequences of elsifs will turn into nested ternary operators, which
7241- B::Deparse doesn't know how to indent nicely.
7241+ C< B::Deparse > doesn't know how to indent nicely.
72427242
72437243=back
72447244
@@ -7253,7 +7253,7 @@ B::Deparse doesn't know how to indent nicely.
72537253
72547254=head2 Description
72557255
7256- B::Deparse can also be used on a sub-by-sub basis from other perl
7256+ C< B::Deparse > can also be used on a sub-by-sub basis from other perl
72577257programs.
72587258
72597259=head2 new
@@ -7304,15 +7304,16 @@ use re;
73047304
73057305=back
73067306
7307- Ordinarily, if you use B::Deparse on a subroutine which has
7307+ Ordinarily, if you use C< B::Deparse > on a subroutine which has
73087308been compiled in the presence of one or more of these pragmas,
73097309the output will include statements to turn on the appropriate
7310- directives. So if you then compile the code returned by coderef2text,
7311- it will behave the same way as the subroutine which you deparsed.
7310+ directives. So if you then compile the code returned by
7311+ L</coderef2text> , it will behave the same way as the subroutine
7312+ which you deparsed.
73127313
73137314However, you may know that you intend to use the results in a
73147315particular context, where some pragmas are already in scope. In
7315- this case, you use the B< ambient_pragmas > method to describe the
7316+ this case, you use the L</ ambient_pragmas> method to describe the
73167317assumptions you wish to make.
73177318
73187319Not all of the options currently have any useful effect. See
@@ -7332,7 +7333,7 @@ expect.
73327333
73337334=item $[
73347335
7335- Takes a number, the value of the array base $[ .
7336+ Takes a number, the value of the array base C< $[ > .
73367337Obsolete: cannot be non-zero.
73377338
73387339=item bytes
@@ -7379,7 +7380,7 @@ See L<warnings> for more information about lexical warnings.
73797380=item warning_bits
73807381
73817382These two parameters are used to specify the ambient pragmas in
7382- the format used by the special variables $^H and ${^WARNING_BITS}.
7383+ the format used by the special variables C< $^H > and C< ${^WARNING_BITS} > .
73837384
73847385They exist principally so that you can write code like:
73857386
@@ -7426,7 +7427,7 @@ C<use strict>, C<use bytes>, C<use integer>
74267427and C<use feature > .
74277428
74287429Excepting those listed above, we're currently unable to guarantee that
7429- B::Deparse will produce a pragma at the correct point in the program.
7430+ C< B::Deparse > will produce a pragma at the correct point in the program.
74307431(Specifically, pragmas at the beginning of a block often appear right
74317432before the start of the block instead.)
74327433Since the effects of pragmas are often lexically scoped, this can mean
@@ -7436,16 +7437,16 @@ than in the input file.
74367437=item *
74377438
74387439In fact, the above is a specific instance of a more general problem:
7439- we can't guarantee to produce BEGIN blocks or C<use > declarations in
7440+ we can't guarantee to produce C< BEGIN > blocks or C<use > declarations in
74407441exactly the right place. So if you use a module which affects compilation
74417442(such as by over-riding keywords, overloading constants or whatever)
74427443then the output code might not work as intended.
74437444
74447445=item *
74457446
74467447Some constants don't print correctly either with or without B<-d > .
7447- For instance, neither B::Deparse nor Data::Dumper know how to print
7448- dual-valued scalars correctly, as in:
7448+ For instance, neither C< B::Deparse > nor L< Data::Dumper> know how to
7449+ print dual-valued scalars correctly, as in:
74497450
74507451 use constant E2BIG => ($!=7); $y = E2BIG; print $y, 0+$y;
74517452
@@ -7475,7 +7476,7 @@ which is not, consequently, deparsed correctly.
74757476=item *
74767477
74777478Lexical (my) variables declared in scopes external to a subroutine
7478- appear in coderef2text output text as package variables. This is a tricky
7479+ appear in L</ coderef2text> output text as package variables. This is a tricky
74797480problem, as perl has no native facility for referring to a lexical variable
74807481defined within a different scope, although L<PadWalker> is a good start.
74817482
0 commit comments