]> git.donarmstrong.com Git - perltidy.git/commitdiff
make -novalign apply to all side comments
authorSteve Hancock <perltidy@users.sourceforge.net>
Wed, 8 Sep 2021 14:27:59 +0000 (07:27 -0700)
committerSteve Hancock <perltidy@users.sourceforge.net>
Wed, 8 Sep 2021 14:27:59 +0000 (07:27 -0700)
lib/Perl/Tidy/VerticalAligner.pm
side-comm [new file with mode: 0644]

index 3c453227c042766ad4b0a74b80f36ab9715d7252..be6e5a255ebf4042ac85fd5749fc2efd7316f59f 100644 (file)
@@ -4280,7 +4280,7 @@ sub is_good_side_comment_column {
     my $short_diff = SC_LONG_LINE_DIFF / ( 1 + $alev_diff * $num5 );
 
     goto FORGET
-      if ( $line_diff > $short_diff );
+      if ( $line_diff > $short_diff ) || !$self->[_rOpts_valign_];
 
     # RULE3: Forget a side comment if this line is at lower level and
     # ends a block
diff --git a/side-comm b/side-comm
new file mode 100644 (file)
index 0000000..0ff46c9
--- /dev/null
+++ b/side-comm
@@ -0,0 +1,3827 @@
+PERLTIDY(1)                               User Contributed Perl Documentation                               PERLTIDY(1)
+
+N\bNA\bAM\bME\bE
+       perltidy - a perl script indenter and reformatter
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+           perltidy [ options ] file1 file2 file3 ...
+                   (output goes to file1.tdy, file2.tdy, file3.tdy, ...)
+           perltidy [ options ] file1 -o outfile
+           perltidy [ options ] file1 -st >outfile
+           perltidy [ options ] <infile >outfile
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+       Perltidy reads a perl script and writes an indented, reformatted script.
+
+       Many users will find enough information in "EXAMPLES" to get started.  New users may benefit from the short
+       tutorial which can be found at http://perltidy.sourceforge.net/tutorial.html
+
+       A convenient aid to systematically defining a set of style parameters can be found at
+       http://perltidy.sourceforge.net/stylekey.html
+
+       Perltidy can produce output on either of two modes, depending on the existence of an -\b-h\bht\btm\bml\bl flag.  Without this
+       flag, the output is passed through a formatter.  The default formatting tries to follow the recommendations in
+       p\bpe\ber\brl\bls\bst\bty\byl\ble\be(1), but it can be controlled in detail with numerous input parameters, which are described in
+       "FORMATTING OPTIONS".
+
+       When the -\b-h\bht\btm\bml\bl flag is given, the output is passed through an HTML formatter which is described in "HTML
+       OPTIONS".
+
+E\bEX\bXA\bAM\bMP\bPL\bLE\bES\bS
+         perltidy somefile.pl
+
+       This will produce a file _\bs_\bo_\bm_\be_\bf_\bi_\bl_\be_\b._\bp_\bl_\b._\bt_\bd_\by containing the script reformatted using the default options, which
+       approximate the style suggested in p\bpe\ber\brl\bls\bst\bty\byl\ble\be(1).  The source file _\bs_\bo_\bm_\be_\bf_\bi_\bl_\be_\b._\bp_\bl is unchanged.
+
+         perltidy *.pl
+
+       Execute perltidy on all _\b._\bp_\bl files in the current directory with the default options.  The output will be in
+       files with an appended _\b._\bt_\bd_\by extension.  For any file with an error, there will be a file with extension _\b._\bE_\bR_\bR.
+
+         perltidy -b file1.pl file2.pl
+
+       Modify _\bf_\bi_\bl_\be_\b1_\b._\bp_\bl and _\bf_\bi_\bl_\be_\b2_\b._\bp_\bl in place, and backup the originals to _\bf_\bi_\bl_\be_\b1_\b._\bp_\bl_\b._\bb_\ba_\bk and _\bf_\bi_\bl_\be_\b2_\b._\bp_\bl_\b._\bb_\ba_\bk.  If
+       _\bf_\bi_\bl_\be_\b1_\b._\bp_\bl_\b._\bb_\ba_\bk and/or _\bf_\bi_\bl_\be_\b2_\b._\bp_\bl_\b._\bb_\ba_\bk already exist, they will be overwritten.
+
+         perltidy -b -bext='/' file1.pl file2.pl
+
+       Same as the previous example except that the backup files _\bf_\bi_\bl_\be_\b1_\b._\bp_\bl_\b._\bb_\ba_\bk and _\bf_\bi_\bl_\be_\b2_\b._\bp_\bl_\b._\bb_\ba_\bk will be deleted if there
+       are no errors.
+
+         perltidy -gnu somefile.pl
+
+       Execute perltidy on file _\bs_\bo_\bm_\be_\bf_\bi_\bl_\be_\b._\bp_\bl with a style which approximates the GNU Coding Standards for C programs.
+       The output will be _\bs_\bo_\bm_\be_\bf_\bi_\bl_\be_\b._\bp_\bl_\b._\bt_\bd_\by.
+
+         perltidy -i=3 somefile.pl
+
+       Execute perltidy on file _\bs_\bo_\bm_\be_\bf_\bi_\bl_\be_\b._\bp_\bl, with 3 columns for each level of indentation (-\b-i\bi=\b=3\b3) instead of the default
+       4 columns.  There will not be any tabs in the reformatted script, except for any which already exist in
+       comments, pod documents, quotes, and here documents.  Output will be _\bs_\bo_\bm_\be_\bf_\bi_\bl_\be_\b._\bp_\bl_\b._\bt_\bd_\by.
+
+         perltidy -i=3 -et=8 somefile.pl
+
+       Same as the previous example, except that leading whitespace will be entabbed with one tab character per 8
+       spaces.
+
+         perltidy -ce -l=72 somefile.pl
+
+       Execute perltidy on file _\bs_\bo_\bm_\be_\bf_\bi_\bl_\be_\b._\bp_\bl with all defaults except use "cuddled elses" (-\b-c\bce\be) and a maximum line
+       length of 72 columns (-\b-l\bl=\b=7\b72\b2) instead of the default 80 columns.
+
+         perltidy -g somefile.pl
+
+       Execute perltidy on file _\bs_\bo_\bm_\be_\bf_\bi_\bl_\be_\b._\bp_\bl and save a log file _\bs_\bo_\bm_\be_\bf_\bi_\bl_\be_\b._\bp_\bl_\b._\bL_\bO_\bG which shows the nesting of braces,
+       parentheses, and square brackets at the start of every line.
+
+         perltidy -html somefile.pl
+
+       This will produce a file _\bs_\bo_\bm_\be_\bf_\bi_\bl_\be_\b._\bp_\bl_\b._\bh_\bt_\bm_\bl containing the script with html markup.  The output file will contain
+       an embedded style sheet in the <HEAD> section which may be edited to change the appearance.
+
+         perltidy -html -css=mystyle.css somefile.pl
+
+       This will produce a file _\bs_\bo_\bm_\be_\bf_\bi_\bl_\be_\b._\bp_\bl_\b._\bh_\bt_\bm_\bl containing the script with html markup.  This output file will contain
+       a link to a separate style sheet file _\bm_\by_\bs_\bt_\by_\bl_\be_\b._\bc_\bs_\bs.  If the file _\bm_\by_\bs_\bt_\by_\bl_\be_\b._\bc_\bs_\bs does not exist, it will be created.
+       If it exists, it will not be overwritten.
+
+         perltidy -html -pre somefile.pl
+
+       Write an html snippet with only the PRE section to _\bs_\bo_\bm_\be_\bf_\bi_\bl_\be_\b._\bp_\bl_\b._\bh_\bt_\bm_\bl.  This is useful when code snippets are
+       being formatted for inclusion in a larger web page.  No style sheet will be written in this case.
+
+         perltidy -html -ss >mystyle.css
+
+       Write a style sheet to _\bm_\by_\bs_\bt_\by_\bl_\be_\b._\bc_\bs_\bs and exit.
+
+         perltidy -html -frm mymodule.pm
+
+       Write html with a frame holding a table of contents and the source code.  The output files will be
+       _\bm_\by_\bm_\bo_\bd_\bu_\bl_\be_\b._\bp_\bm_\b._\bh_\bt_\bm_\bl (the frame), _\bm_\by_\bm_\bo_\bd_\bu_\bl_\be_\b._\bp_\bm_\b._\bt_\bo_\bc_\b._\bh_\bt_\bm_\bl (the table of contents), and _\bm_\by_\bm_\bo_\bd_\bu_\bl_\be_\b._\bp_\bm_\b._\bs_\br_\bc_\b._\bh_\bt_\bm_\bl (the source
+       code).
+
+O\bOP\bPT\bTI\bIO\bON\bNS\bS -\b- O\bOV\bVE\bER\bRV\bVI\bIE\bEW\bW
+       The entire command line is scanned for options, and they are processed before any files are processed.  As a
+       result, it does not matter whether flags are before or after any filenames.  However, the relative order of
+       parameters is important, with later parameters overriding the values of earlier parameters.
+
+       For each parameter, there is a long name and a short name.  The short names are convenient for keyboard input,
+       while the long names are self-documenting and therefore useful in scripts.  It is customary to use two leading
+       dashes for long names, but one may be used.
+
+       Most parameters which serve as on/off flags can be negated with a leading "n" (for the short name) or a leading
+       "no" or "no-" (for the long name).  For example, the flag to outdent long quotes is -\b-o\bol\blq\bq or
+       -\b--\b-o\bou\but\btd\bde\ben\bnt\bt-\b-l\blo\bon\bng\bg-\b-q\bqu\buo\bot\bte\bes\bs.  The flag to skip this is -\b-n\bno\bol\blq\bq or -\b--\b-n\bno\boo\bou\but\btd\bde\ben\bnt\bt-\b-l\blo\bon\bng\bg-\b-q\bqu\buo\bot\bte\bes\bs or -\b--\b-n\bno\bo-\b-o\bou\but\btd\bde\ben\bnt\bt-\b-l\blo\bon\bng\bg-\b-q\bqu\buo\bot\bte\bes\bs.
+
+       Options may not be bundled together.  In other words, options -\b-q\bq and -\b-g\bg may NOT be entered as -\b-q\bqg\bg.
+
+       Option names may be terminated early as long as they are uniquely identified.  For example, instead of
+       -\b--\b-d\bdu\bum\bmp\bp-\b-t\bto\bok\bke\ben\bn-\b-t\bty\byp\bpe\bes\bs, it would be sufficient to enter -\b--\b-d\bdu\bum\bmp\bp-\b-t\bto\bok\bk, or even -\b--\b-d\bdu\bum\bmp\bp-\b-t\bt, to uniquely identify this
+       command.
+
+   I\bI/\b/O\bO c\bco\bon\bnt\btr\bro\bol\bl
+       The following parameters concern the files which are read and written.
+
+       -\b-h\bh,    -\b--\b-h\bhe\bel\blp\bp
+           Show summary of usage and exit.
+
+       -\b-o\bo=filename,    -\b--\b-o\bou\but\btf\bfi\bil\ble\be=filename
+           Name of the output file (only if a single input file is being processed).  If no output file is specified,
+           and output is not redirected to the standard output (see -\b-s\bst\bt), the output will go to _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be_\b._\bt_\bd_\by. [Note: -
+           does not redirect to standard output. Use -\b-s\bst\bt instead.]
+
+       -\b-s\bst\bt,    -\b--\b-s\bst\bta\ban\bnd\bda\bar\brd\bd-\b-o\bou\but\btp\bpu\but\bt
+           Perltidy must be able to operate on an arbitrarily large number of files in a single run, with each output
+           being directed to a different output file.  Obviously this would conflict with outputting to the single
+           standard output device, so a special flag, -\b-s\bst\bt, is required to request outputting to the standard output.
+           For example,
+
+             perltidy somefile.pl -st >somefile.new.pl
+
+           This option may only be used if there is just a single input file.  The default is -\b-n\bns\bst\bt or
+           -\b--\b-n\bno\bos\bst\bta\ban\bnd\bda\bar\brd\bd-\b-o\bou\but\btp\bpu\but\bt.
+
+       -\b-s\bse\be,    -\b--\b-s\bst\bta\ban\bnd\bda\bar\brd\bd-\b-e\ber\brr\bro\bor\br-\b-o\bou\but\btp\bpu\but\bt
+           If perltidy detects an error when processing file _\bs_\bo_\bm_\be_\bf_\bi_\bl_\be_\b._\bp_\bl, its default behavior is to write error
+           messages to file _\bs_\bo_\bm_\be_\bf_\bi_\bl_\be_\b._\bp_\bl_\b._\bE_\bR_\bR.  Use -\b-s\bse\be to cause all error messages to be sent to the standard error
+           output stream instead.  This directive may be negated with -\b-n\bns\bse\be.  Thus, you may place -\b-s\bse\be in a _\b._\bp_\be_\br_\bl_\bt_\bi_\bd_\by_\br_\bc
+           and override it when desired with -\b-n\bns\bse\be on the command line.
+
+       -\b-o\boe\bex\bxt\bt=ext,    -\b--\b-o\bou\but\btp\bpu\but\bt-\b-f\bfi\bil\ble\be-\b-e\bex\bxt\bte\ben\bns\bsi\bio\bon\bn=ext
+           Change the extension of the output file to be _\be_\bx_\bt instead of the default _\bt_\bd_\by (or _\bh_\bt_\bm_\bl in case the --\b-h\bht\btm\bml\bl
+           option is used).  See "Specifying File Extensions".
+
+       -\b-o\bop\bpa\bat\bth\bh=path,    -\b--\b-o\bou\but\btp\bpu\but\bt-\b-p\bpa\bat\bth\bh=path
+           When perltidy creates a filename for an output file, by default it merely appends an extension to the path
+           and basename of the input file.  This parameter causes the path to be changed to _\bp_\ba_\bt_\bh instead.
+
+           The path should end in a valid path separator character, but perltidy will try to add one if it is missing.
+
+           For example
+
+            perltidy somefile.pl -opath=/tmp/
+
+           will produce _\b/_\bt_\bm_\bp_\b/_\bs_\bo_\bm_\be_\bf_\bi_\bl_\be_\b._\bp_\bl_\b._\bt_\bd_\by.  Otherwise, _\bs_\bo_\bm_\be_\bf_\bi_\bl_\be_\b._\bp_\bl_\b._\bt_\bd_\by will appear in whatever directory contains
+           _\bs_\bo_\bm_\be_\bf_\bi_\bl_\be_\b._\bp_\bl.
+
+           If the path contains spaces, it should be placed in quotes.
+
+           This parameter will be ignored if output is being directed to standard output, or if it is being specified
+           explicitly with the -\b-o\bo=\b=s\bs parameter.
+
+       -\b-b\bb,    -\b--\b-b\bba\bac\bck\bku\bup\bp-\b-a\ban\bnd\bd-\b-m\bmo\bod\bdi\bif\bfy\by-\b-i\bin\bn-\b-p\bpl\bla\bac\bce\be
+           Modify the input file or files in-place and save the original with the extension _\b._\bb_\ba_\bk.  Any existing _\b._\bb_\ba_\bk
+           file will be deleted.  See next item for changing the default backup extension, and for eliminating the
+           backup file altogether.
+
+           A -\b-b\bb flag will be ignored if input is from standard input or goes to standard output, or if the -\b-h\bht\btm\bml\bl flag
+           is set.
+
+           In particular, if you want to use both the -\b-b\bb flag and the -\b-p\bpb\bbp\bp (--perl-best-practices) flag, then you must
+           put a -\b-n\bns\bst\bt flag after the -\b-p\bpb\bbp\bp flag because it contains a -\b-s\bst\bt flag as one of its components, which means
+           that output will go to the standard output stream.
+
+       -\b-b\bbe\bex\bxt\bt=ext,    -\b--\b-b\bba\bac\bck\bku\bup\bp-\b-f\bfi\bil\ble\be-\b-e\bex\bxt\bte\ben\bns\bsi\bio\bon\bn=ext
+           This parameter serves two purposes: (1) to change the extension of the backup file to be something other
+           than the default _\b._\bb_\ba_\bk, and (2) to indicate that no backup file should be saved.
+
+           To change the default extension to something other than _\b._\bb_\ba_\bk see "Specifying File Extensions".
+
+           A backup file of the source is always written, but you can request that it be deleted at the end of
+           processing if there were no errors.  This is risky unless the source code is being maintained with a source
+           code control system.
+
+           To indicate that the backup should be deleted include one forward slash, /\b/, in the extension.  If any text
+           remains after the slash is removed it will be used to define the backup file extension (which is always
+           created and only deleted if there were no errors).
+
+           Here are some examples:
+
+             Parameter           Extension          Backup File Treatment
+             <-bext=bak>         F<.bak>            Keep (same as the default behavior)
+             <-bext='/'>         F<.bak>            Delete if no errors
+             <-bext='/backup'>   F<.backup>         Delete if no errors
+             <-bext='original/'> F<.original>       Delete if no errors
+
+       -\b-w\bw,    -\b--\b-w\bwa\bar\brn\bni\bin\bng\bg-\b-o\bou\but\btp\bpu\but\bt
+           Setting -\b-w\bw causes any non-critical warning messages to be reported as errors.  These include messages about
+           possible pod problems, possibly bad starting indentation level, and cautions about indirect object usage.
+           The default, -\b-n\bnw\bw or -\b--\b-n\bno\bow\bwa\bar\brn\bni\bin\bng\bg-\b-o\bou\but\btp\bpu\but\bt, is not to include these warnings.
+
+       -\b-q\bq,    -\b--\b-q\bqu\bui\bie\bet\bt
+           Deactivate error messages (for running under an editor).
+
+           For example, if you use a vi-style editor, such as vim, you may execute perltidy as a filter from within the
+           editor using something like
+
+            :n1,n2!perltidy -q
+
+           where "n1,n2" represents the selected text.  Without the -\b-q\bq flag, any error message may mess up your screen,
+           so be prepared to use your "undo" key.
+
+       -\b-l\blo\bog\bg,    -\b--\b-l\blo\bog\bgf\bfi\bil\ble\be
+           Save the _\b._\bL_\bO_\bG file, which has many useful diagnostics.  Perltidy always creates a _\b._\bL_\bO_\bG file, but by default
+           it is deleted unless a program bug is suspected.  Setting the -\b-l\blo\bog\bg flag forces the log file to be saved.
+
+       -\b-g\bg=\b=n\bn, -\b--\b-l\blo\bog\bgf\bfi\bil\ble\be-\b-g\bga\bap\bp=\b=n\bn
+           Set maximum interval between input code lines in the logfile.  This purpose of this flag is to assist in
+           debugging nesting errors.  The value of "n" is optional.  If you set the flag -\b-g\bg without the value of "n",
+           it will be taken to be 1, meaning that every line will be written to the log file.  This can be helpful if
+           you are looking for a brace, paren, or bracket nesting error.
+
+           Setting -\b-g\bg also causes the logfile to be saved, so it is not necessary to also include -\b-l\blo\bog\bg.
+
+           If no -\b-g\bg flag is given, a value of 50 will be used, meaning that at least every 50th line will be recorded
+           in the logfile.  This helps prevent excessively long log files.
+
+           Setting a negative value of "n" is the same as not setting -\b-g\bg at all.
+
+       -\b-n\bnp\bpr\bro\bo  -\b--\b-n\bno\bop\bpr\bro\bof\bfi\bil\ble\be
+           Ignore any _\b._\bp_\be_\br_\bl_\bt_\bi_\bd_\by_\br_\bc command file.  Normally, perltidy looks first in your current directory for a
+           _\b._\bp_\be_\br_\bl_\bt_\bi_\bd_\by_\br_\bc file of parameters.  (The format is described below).  If it finds one, it applies those options
+           to the initial default values, and then it applies any that have been defined on the command line.  If no
+           _\b._\bp_\be_\br_\bl_\bt_\bi_\bd_\by_\br_\bc file is found, it looks for one in your home directory.
+
+           If you set the -\b-n\bnp\bpr\bro\bo flag, perltidy will not look for this file.
+
+       -\b-p\bpr\bro\bo=\b=f\bfi\bil\ble\ben\bna\bam\bme\be or  -\b--\b-p\bpr\bro\bof\bfi\bil\ble\be=\b=f\bfi\bil\ble\ben\bna\bam\bme\be
+           To simplify testing and switching .perltidyrc files, this command may be used to specify a configuration
+           file which will override the default name of .perltidyrc.  There must not be a space on either side of the
+           '=' sign.  For example, the line
+
+              perltidy -pro=testcfg
+
+           would cause file _\bt_\be_\bs_\bt_\bc_\bf_\bg to be used instead of the default _\b._\bp_\be_\br_\bl_\bt_\bi_\bd_\by_\br_\bc.
+
+           A pathname begins with three dots, e.g. ".../.perltidyrc", indicates that the file should be searched for
+           starting in the current directory and working upwards. This makes it easier to have multiple projects each
+           with their own .perltidyrc in their root directories.
+
+       -\b-o\bop\bpt\bt,   -\b--\b-s\bsh\bho\bow\bw-\b-o\bop\bpt\bti\bio\bon\bns\bs
+           Write a list of all options used to the _\b._\bL_\bO_\bG file.  Please see -\b--\b-d\bdu\bum\bmp\bp-\b-o\bop\bpt\bti\bio\bon\bns\bs for a simpler way to do this.
+
+       -\b-f\bf,   -\b--\b-f\bfo\bor\brc\bce\be-\b-r\bre\bea\bad\bd-\b-b\bbi\bin\bna\bar\bry\by
+           Force perltidy to process binary files.  To avoid producing excessive error messages, perltidy skips files
+           identified by the system as non-text.  However, valid perl scripts containing binary data may sometimes be
+           identified as non-text, and this flag forces perltidy to process them.
+
+       -\b-a\bas\bst\bt,   -\b--\b-a\bas\bss\bse\ber\brt\bt-\b-t\bti\bid\bdy\by
+           This flag asserts that the input and output code streams are identical, or in other words that the input
+           code is already 'tidy' according to the formatting parameters.  If this is not the case, an error message
+           noting this is produced.  This error message will cause the process to return a non-zero exit code.  The
+           test for this is made by comparing an MD5 hash value for the input and output code streams. This flag has no
+           other effect on the functioning of perltidy.  This might be useful for certain code maintenance operations.
+           Note: you will not see this message if you have error messages turned off with the -quiet flag.
+
+       -\b-a\bas\bsu\bu,   -\b--\b-a\bas\bss\bse\ber\brt\bt-\b-u\bun\bnt\bti\bid\bdy\by
+           This flag asserts that the input and output code streams are different, or in other words that the input
+           code is 'untidy' according to the formatting parameters.  If this is not the case, an error message noting
+           this is produced.  This flag has no other effect on the functioning of perltidy.
+
+       -\b-s\bsa\bal\bl=\b=s\bs,   -\b--\b-s\bsu\bub\bb-\b-a\bal\bli\bia\bas\bs-\b-l\bli\bis\bst\bt=\b=s\bs
+           This flag causes one or more words to be treated the same as if they were the keyword 'sub'.  The string s\bs
+           contains one or more alias words, separated by spaces or commas.
+
+           For example,
+
+                   perltidy -sal='method fun _sub M4'
+
+           will cause the perltidy to treate the words 'method', 'fun', '_sub' and 'M4' to be treated the same as if
+           they were 'sub'.  Note that if the alias words are separated by spaces then the string of words should be
+           placed in quotes.
+
+           Note that several other parameters accept a list of keywords, including 'sub' (see "Specifying Block
+           Types").  You do not need to include any sub aliases in these lists. Just include keyword 'sub' if you wish,
+           and all aliases are automatically included.
+
+F\bFO\bOR\bRM\bMA\bAT\bTT\bTI\bIN\bNG\bG O\bOP\bPT\bTI\bIO\bON\bNS\bS
+   B\bBa\bas\bsi\bic\bc O\bOp\bpt\bti\bio\bon\bns\bs
+       -\b--\b-n\bno\bot\bti\bid\bdy\by
+           This flag disables all formatting and causes the input to be copied unchanged to the output except for
+           possible changes in line ending characters and any pre- and post-filters.  This can be useful in conjunction
+           with a hierarchical set of _\b._\bp_\be_\br_\bl_\bt_\bi_\bd_\by_\br_\bc files to avoid unwanted code tidying.  See also "Skipping Selected
+           Sections of Code" for a way to avoid tidying specific sections of code.
+
+       -\b-i\bi=\b=n\bn,  -\b--\b-i\bin\bnd\bde\ben\bnt\bt-\b-c\bco\bol\blu\bum\bmn\bns\bs=\b=n\bn
+           Use n columns per indentation level (default n=4).
+
+       -\b-l\bl=\b=n\bn, -\b--\b-m\bma\bax\bxi\bim\bmu\bum\bm-\b-l\bli\bin\bne\be-\b-l\ble\ben\bng\bgt\bth\bh=\b=n\bn
+           The default maximum line length is n=80 characters.  Perltidy will try to find line break points to keep
+           lines below this length. However, long quotes and side comments may cause lines to exceed this length.
+
+           The default length of 80 comes from the past when this was the standard CRT screen width.  Many programmers
+           prefer to increase this to something like 120.
+
+           Setting -\b-l\bl=\b=0\b0 is equivalent to setting -\b-l\bl=\b=(\b(a\ba v\bve\ber\bry\by l\bla\bar\brg\bge\be n\bnu\bum\bmb\bbe\ber\br)\b).  But this is not recommended because, for
+           example, a very long list will be formatted in a single long line.
+
+       -\b-v\bvm\bml\bll\bl, -\b--\b-v\bva\bar\bri\bia\bab\bbl\ble\be-\b-m\bma\bax\bxi\bim\bmu\bum\bm-\b-l\bli\bin\bne\be-\b-l\ble\ben\bng\bgt\bth\bh
+           A problem arises using a fixed maximum line length with very deeply nested code and data structures because
+           eventually the amount of leading whitespace used for indicating indentation takes up most or all of the
+           available line width, leaving little or no space for the actual code or data.  One solution is to use a vary
+           long line length.  Another solution is to use the -\b-v\bvm\bml\bll\bl flag, which basically tells perltidy to ignore
+           leading whitespace when measuring the line length.
+
+           To be precise, when the -\b-v\bvm\bml\bll\bl parameter is set, the maximum line length of a line of code will be M+L*I,
+           where
+
+                 M is the value of --maximum-line-length=M (-l=M), default 80,
+                 I is the value of --indent-columns=I (-i=I), default 4,
+                 L is the indentation level of the line of code
+
+           When this flag is set, the choice of breakpoints for a block of code should be essentially independent of
+           its nesting depth.  However, the absolute line lengths, including leading whitespace, can still be
+           arbitrarily large.  This problem can be avoided by including the next parameter.
+
+           The default is not to do this (-\b-n\bnv\bvm\bml\bll\bl).
+
+       -\b-w\bwc\bc=\b=n\bn, -\b--\b-w\bwh\bhi\bit\bte\bes\bsp\bpa\bac\bce\be-\b-c\bcy\byc\bcl\ble\be=\b=n\bn
+           This flag also addresses problems with very deeply nested code and data structures.  When the nesting depth
+           exceeds the value n\bn the leading whitespace will be reduced and start at a depth of 1 again.  The result is
+           that blocks of code will shift back to the left rather than moving arbitrarily far to the right.  This
+           occurs cyclically to any depth.
+
+           For example if one level of indentation equals 4 spaces (-\b-i\bi=\b=4\b4, the default), and one uses -\b-w\bwc\bc=\b=1\b15\b5, then if
+           the leading whitespace on a line exceeds about 4*15=60 spaces it will be reduced back to 4*1=4 spaces and
+           continue increasing from there.  If the whitespace never exceeds this limit the formatting remains
+           unchanged.
+
+           The combination of -\b-v\bvm\bml\bll\bl and -\b-w\bwc\bc=\b=n\bn provides a solution to the problem of displaying arbitrarily deep data
+           structures and code in a finite window, although -\b-w\bwc\bc=\b=n\bn may of course be used without -\b-v\bvm\bml\bll\bl.
+
+           The default is not to use this, which can also be indicated using -\b-w\bwc\bc=\b=0\b0.
+
+       T\bTa\bab\bbs\bs
+           Using tab characters will almost certainly lead to future portability and maintenance problems, so the
+           default and recommendation is not to use them.  For those who prefer tabs, however, there are two different
+           options.
+
+           Except for possibly introducing tab indentation characters, as outlined below, perltidy does not introduce
+           any tab characters into your file, and it removes any tabs from the code (unless requested not to do so with
+           -\b-f\bfw\bws\bs).  If you have any tabs in your comments, quotes, or here-documents, they will remain.
+
+           -\b-e\bet\bt=\b=n\bn,   -\b--\b-e\ben\bnt\bta\bab\bb-\b-l\ble\bea\bad\bdi\bin\bng\bg-\b-w\bwh\bhi\bit\bte\bes\bsp\bpa\bac\bce\be
+               This flag causes each n\bn initial space characters to be replaced by one tab character.
+
+               The value of the integer n\bn can be any value but can be coordinated with the number of spaces used for
+               intentation. For example, -\b-e\bet\bt=\b=4\b4 -\b-c\bci\bi=\b=4\b4 -\b-i\bi=\b=4\b4 will produce one tab for each indentation level and and one
+               for each continuation indentation level.  You may want to coordinate the value of n\bn with what your
+               display software assumes for the spacing of a tab.
+
+           -\b-t\bt,   -\b--\b-t\bta\bab\bbs\bs
+               This flag causes one leading tab character to be inserted for each level of indentation.  Certain other
+               features are incompatible with this option, and if these options are also given, then a warning message
+               will be issued and this flag will be unset.  One example is the -\b-l\blp\bp option. This flag is retained for
+               backwards compatibility, but if you use tabs, the -\b-e\bet\bt=\b=n\bn flag is recommended.
+
+           -\b-d\bdt\bt=\b=n\bn,   -\b--\b-d\bde\bef\bfa\bau\bul\blt\bt-\b-t\bta\bab\bbs\bsi\biz\bze\be=\b=n\bn
+               If the first line of code passed to perltidy contains leading tabs but no tab scheme is specified for
+               the output stream then perltidy must guess how many spaces correspond to each leading tab.  This number
+               of spaces n\bn corresponding to each leading tab of the input stream may be specified with -\b-d\bdt\bt=\b=n\bn.  The
+               default is n\bn=\b=8\b8.
+
+               This flag has no effect if a tab scheme is specified for the output stream, because then the input
+               stream is assumed to use the same tab scheme and indentation spaces as for the output stream (any other
+               assumption would lead to unstable editing).
+
+       -\b-x\bxs\bs,   -\b--\b-e\bex\bxt\bte\ben\bnd\bde\bed\bd-\b-s\bsy\byn\bnt\bta\bax\bx
+           A problem with formatting Perl code is that some modules can introduce new syntax.  This flag allows
+           perltidy to handle certain common extensions to the standard syntax without complaint.
+
+           For example, without this flag a structure such as the following would generate a syntax error and the
+           braces would not be balanced:
+
+               method deposit( Num $amount) {
+                   $self->balance( $self->balance + $amount );
+               }
+
+           For one of the extensions, module Switch::Plain, colons are marked as labels.  If you use this module, you
+           may want to also use the -\b--\b-n\bno\boo\bou\but\btd\bde\ben\bnt\bt-\b-l\bla\bab\bbe\bel\bls\bs flag to prevent lines such as 'default:' from being outdented.
+
+           This flag is enabled by default but it can be deactivated with -\b-n\bnx\bxs\bs.  Probably the only reason to deactivate
+           this flag is to generate more diagnostic messages when debugging a script.
+
+           For another method of handling extended syntax see the section "Skipping Selected Sections of Code".
+
+       -\b-i\bio\bo,   -\b--\b-i\bin\bnd\bde\ben\bnt\bt-\b-o\bon\bnl\bly\by
+           This flag is used to deactivate all whitespace and line break changes within non-blank lines of code.  When
+           it is in effect, the only change to the script will be to the indentation and to the number of blank lines.
+           And any flags controlling whitespace and newlines will be ignored.  You might want to use this if you are
+           perfectly happy with your whitespace and line breaks, and merely want perltidy to handle the indentation.
+           (This also speeds up perltidy by well over a factor of two, so it might be useful when perltidy is merely
+           being used to help find a brace error in a large script).
+
+           Setting this flag is equivalent to setting -\b--\b-f\bfr\bre\bee\bez\bze\be-\b-n\bne\bew\bwl\bli\bin\bne\bes\bs and -\b--\b-f\bfr\bre\bee\bez\bze\be-\b-w\bwh\bhi\bit\bte\bes\bsp\bpa\bac\bce\be.
+
+           If you also want to keep your existing blank lines exactly as they are, you can add -\b--\b-f\bfr\bre\bee\bez\bze\be-\b-b\bbl\bla\ban\bnk\bk-\b-l\bli\bin\bne\bes\bs.
+
+           With this option perltidy is still free to modify the indenting (and outdenting) of code and comments as it
+           normally would.  If you also want to prevent long comment lines from being outdented, you can add either
+           -\b-n\bno\bol\bll\bl or -\b-l\bl=\b=0\b0.
+
+           Setting this flag will prevent perltidy from doing any special operations on closing side comments.  You may
+           still delete all side comments however when this flag is in effect.
+
+       -\b-e\ben\bnc\bc=\b=s\bs,  -\b--\b-c\bch\bha\bar\bra\bac\bct\bte\ber\br-\b-e\ben\bnc\bco\bod\bdi\bin\bng\bg=\b=s\bs
+           This flag indicates the character encoding, if any, of the input data stream.  Perltidy does not look for
+           the encoding directives in the soure stream, such as u\bus\bse\be u\but\btf\bf8\b8, and instead relies on this flag to determine
+           the encoding.  (Note that perltidy often works on snippets of code rather than complete files so it cannot
+           rely on u\bus\bse\be u\but\btf\bf8\b8 directives).
+
+           The possible values for s\bs are (1) the name of an encoding recognized by the Encode.pm module, (2) n\bno\bon\bne\be if no
+           encoding is used, or (3) <guess> if perltidy should guess.
+
+           For example, the value u\but\btf\bf8\b8 causes the stream to be read and written as UTF-8.  If the input stream cannot
+           be decoded with a specified encoding then processing is not done.
+
+           The value n\bno\bon\bne\be causes the stream to be processed without special encoding assumptions.  This is appropriate
+           for files which are written in single-byte character encodings such as latin-1.
+
+           The value g\bgu\bue\bes\bss\bs tells perltidy to guess between either utf8 encoding or no encoding (meaning one character
+           per byte).  The guess uses the Encode::Guess module and this restricted range of guesses covers the most
+           common cases.  Testing showed that considering any greater number of encodings as guess suspects is too
+           risky.
+
+           The current default is g\bgu\bue\bes\bss\bs.
+
+           The abbreviations -\b-u\but\btf\bf8\b8 or -\b-U\bUT\bTF\bF8\b8 are equivalent to -\b-e\ben\bnc\bc=\b=u\but\btf\bf8\b8, and the abbreviation -\b-g\bgu\bue\bes\bss\bs is equivalent to
+           <-enc=guess>.  So to process a file named f\bfi\bil\ble\be.\b.p\bpl\bl which is encoded in UTF-8 you can use:
+
+              perltidy -utf8 file.pl
+
+           or
+              perltidy -guess file.pl
+
+           To process a file in e\beu\buc\bc-\b-j\bjp\bp you could use
+
+              perltidy -enc=euc-jp file.pl
+
+           A perltidy output file is unencoded if the input file is unencoded, and otherwise it is encoded as u\but\btf\bf8\b8,
+           even if the input encoding was not u\but\btf\bf8\b8.
+
+       -\b-g\bgc\bcs\bs,  -\b--\b-u\bus\bse\be-\b-u\bun\bni\bic\bco\bod\bde\be-\b-g\bgc\bcs\bst\btr\bri\bin\bng\bg
+           This flag controls whether or not perltidy may use module Unicode::GCString to obtain accurate display
+           widths of wide characters.  The default is -\b--\b-n\bno\bou\bus\bse\be-\b-u\bun\bni\bic\bco\bod\bde\be-\b-g\bgc\bcs\bst\btr\bri\bin\bng\bg.
+
+           If this flag is set, and text is encoded, perltidy will look for the module Unicode::GCString and, if found,
+           will use it to obtain character display widths.  This can improve displayed vertical alignment for files
+           with wide characters.  It is a nice feature but it is off by default to avoid conflicting formatting when
+           there are multiple developers.  Perltidy installation does not require Unicode::GCString, so users wanting
+           to use this feature need set this flag and also to install Unicode::GCString separately.
+
+           If this flag is set and perltidy does not find module Unicode::GCString, a warning message will be produced
+           and processing will continue but without the potential benefit provided by the module.
+
+           Also note that actual vertical alignment depends upon the fonts used by the text display software, so
+           vertical alignment may not be optimal even when Unicode::GCString is used.
+
+       -\b-o\bol\ble\be=\b=s\bs,  -\b--\b-o\bou\but\btp\bpu\but\bt-\b-l\bli\bin\bne\be-\b-e\ben\bnd\bdi\bin\bng\bg=\b=s\bs
+           where s="win", "dos", "unix", or "mac".  This flag tells perltidy to output line endings for a specific
+           system.  Normally, perltidy writes files with the line separator character of the host system.  The "win"
+           and "dos" flags have an identical result.
+
+       -\b-p\bpl\ble\be,  -\b--\b-p\bpr\bre\bes\bse\ber\brv\bve\be-\b-l\bli\bin\bne\be-\b-e\ben\bnd\bdi\bin\bng\bgs\bs
+           This flag tells perltidy to write its output files with the same line endings as the input file, if
+           possible.  It should work for d\bdo\bos\bs, u\bun\bni\bix\bx, and m\bma\bac\bc line endings.  It will only work if perltidy input comes
+           from a filename (rather than stdin, for example).  If perltidy has trouble determining the input file line
+           ending, it will revert to the default behavior of using the line ending of the host system.
+
+       -\b-a\bat\btn\bnl\bl,  -\b--\b-a\bad\bdd\bd-\b-t\bte\ber\brm\bmi\bin\bna\bal\bl-\b-n\bne\bew\bwl\bli\bin\bne\be
+           This flag, which is enabled by default, allows perltidy to terminate the last line of the output stream with
+           a newline character, regardless of whether or not the input stream was terminated with a newline character.
+           If this flag is negated, with -\b-n\bna\bat\btn\bnl\bl, then perltidy will add a terminal newline to the the output stream
+           only if the input stream is terminated with a newline.
+
+           Negating this flag may be useful for manipulating one-line scripts intended for use on a command line.
+
+       -\b-i\bit\bt=\b=n\bn,   -\b--\b-i\bit\bte\ber\bra\bat\bti\bio\bon\bns\bs=\b=n\bn
+           This flag causes perltidy to do n\bn complete iterations.  The reason for this flag is that code beautification
+           is an iterative process and in some cases the output from perltidy can be different if it is applied a
+           second time.  For most purposes the default of n\bn=\b=1\b1 should be satisfactory.  However n\bn=\b=2\b2 can be useful when a
+           major style change is being made, or when code is being beautified on check-in to a source code control
+           system.  It has been found to be extremely rare for the output to change after 2 iterations.  If a value n\bn
+           is greater than 2 is input then a convergence test will be used to stop the iterations as soon as possible,
+           almost always after 2 iterations.  See the next item for a simplified iteration control.
+
+           This flag has no effect when perltidy is used to generate html.
+
+       -\b-c\bco\bon\bnv\bv,   -\b--\b-c\bco\bon\bnv\bve\ber\brg\bge\be
+           This flag is equivalent to -\b-i\bit\bt=\b=4\b4 and is included to simplify iteration control.  For all practical purposes
+           one either does or does not want to be sure that the output is converged, and there is no penalty to using a
+           large iteration limit since perltidy will check for convergence and stop iterating as soon as possible.  The
+           default is -\b-n\bnc\bco\bon\bnv\bv (no convergence check).  Using -\b-c\bco\bon\bnv\bv will approximately double run time since typically
+           one extra iteration is required to verify convergence.  No extra iterations are required if no new line
+           breaks are made, and two extra iterations are occasionally needed when reformatting complex code structures,
+           such as deeply nested ternary statements.
+
+   C\bCo\bod\bde\be I\bIn\bnd\bde\ben\bnt\bta\bat\bti\bio\bon\bn C\bCo\bon\bnt\btr\bro\bol\bl
+       -\b-c\bci\bi=\b=n\bn, -\b--\b-c\bco\bon\bnt\bti\bin\bnu\bua\bat\bti\bio\bon\bn-\b-i\bin\bnd\bde\ben\bnt\bta\bat\bti\bio\bon\bn=\b=n\bn
+           Continuation indentation is extra indentation spaces applied when a long line is broken.  The default is
+           n=2, illustrated here:
+
+            my $level =   # -ci=2
+              ( $max_index_to_go >= 0 ) ? $levels_to_go[0] : $last_output_level;
+
+           The same example, with n=0, is a little harder to read:
+
+            my $level =   # -ci=0
+            ( $max_index_to_go >= 0 ) ? $levels_to_go[0] : $last_output_level;
+
+           The value given to -\b-c\bci\bi is also used by some commands when a small space is required.  Examples are commands
+           for outdenting labels, -\b-o\bol\bla\ba, and control keywords, -\b-o\bok\bkw\bw.
+
+           When default values are not used, it is recommended that either
+
+           (1) the value n\bn given with -\b-c\bci\bi=\b=n\bn be no more than about one-half of the number of spaces assigned to a full
+           indentation level on the -\b-i\bi=\b=n\bn command, or
+
+           (2) the flag -\b-e\bex\bxt\bte\ben\bnd\bde\bed\bd-\b-c\bco\bon\bnt\bti\bin\bnu\bua\bat\bti\bio\bon\bn-\b-i\bin\bnd\bde\ben\bnt\bta\bat\bti\bio\bon\bn is used (see next section).
+
+       -\b-x\bxc\bci\bi, -\b--\b-e\bex\bxt\bte\ben\bnd\bde\bed\bd-\b-c\bco\bon\bnt\bti\bin\bnu\bua\bat\bti\bio\bon\bn-\b-i\bin\bnd\bde\ben\bnt\bta\bat\bti\bio\bon\bn
+           This flag allows perltidy to use some improvements which have been made to its indentation model. One of the
+           things it does is "extend" continuation indentation deeper into structures, hence the name.  The improved
+           indentation is particularly noticeable when the flags -\b-c\bci\bi=\b=n\bn and -\b-i\bi=\b=n\bn use the same value of n\bn. There are no
+           significant disadvantages to using this flag, but to avoid disturbing existing formatting the default is not
+           to use it, -\b-n\bnx\bxc\bci\bi.
+
+           Please see the section "-\b-p\bpb\bbp\bp, -\b--\b-p\bpe\ber\brl\bl-\b-b\bbe\bes\bst\bt-\b-p\bpr\bra\bac\bct\bti\bic\bce\bes\bs" for an example of how this flag can improve the
+           formatting of ternary statements.  It can also improve indentation of some multi-line qw lists as shown
+           below.
+
+                       # perltidy
+                       foreach $color (
+                           qw(
+                           AntiqueWhite3 Bisque1 Bisque2 Bisque3 Bisque4
+                           SlateBlue3 RoyalBlue1 SteelBlue2 DeepSkyBlue3
+                           ),
+                           qw(
+                           LightBlue1 DarkSlateGray1 Aquamarine2 DarkSeaGreen2
+                           SeaGreen1 Yellow1 IndianRed1 IndianRed2 Tan1 Tan4
+                           )
+                         )
+
+                       # perltidy -xci
+                       foreach $color (
+                           qw(
+                               AntiqueWhite3 Bisque1 Bisque2 Bisque3 Bisque4
+                               SlateBlue3 RoyalBlue1 SteelBlue2 DeepSkyBlue3
+                           ),
+                           qw(
+                               LightBlue1 DarkSlateGray1 Aquamarine2 DarkSeaGreen2
+                               SeaGreen1 Yellow1 IndianRed1 IndianRed2 Tan1 Tan4
+                           )
+                         )
+
+       -\b-s\bsi\bil\bl=\b=n\bn -\b--\b-s\bst\bta\bar\brt\bti\bin\bng\bg-\b-i\bin\bnd\bde\ben\bnt\bta\bat\bti\bio\bon\bn-\b-l\ble\bev\bve\bel\bl=\b=n\bn
+           By default, perltidy examines the input file and tries to determine the starting indentation level.  While
+           it is often zero, it may not be zero for a code snippet being sent from an editing session.
+
+           To guess the starting indentation level perltidy simply assumes that indentation scheme used to create the
+           code snippet is the same as is being used for the current perltidy process.  This is the only sensible guess
+           that can be made.  It should be correct if this is true, but otherwise it probably won't.  For example, if
+           the input script was written with -i=2 and the current peltidy flags have -i=4, the wrong initial
+           indentation will be guessed for a code snippet which has non-zero initial indentation. Likewise, if an
+           entabbing scheme is used in the input script and not in the current process then the guessed indentation
+           will be wrong.
+
+           If the default method does not work correctly, or you want to change the starting level, use -\b-s\bsi\bil\bl=\b=n\bn, to
+           force the starting level to be n.
+
+       L\bLi\bis\bst\bt i\bin\bnd\bde\ben\bnt\bta\bat\bti\bio\bon\bn using -\b-l\blp\bp, -\b--\b-l\bli\bin\bne\be-\b-u\bup\bp-\b-p\bpa\bar\bre\ben\bnt\bth\bhe\bes\bse\bes\bs
+           By default, perltidy indents lists with 4 spaces, or whatever value is specified with -\b-i\bi=\b=n\bn.  Here is a small
+           list formatted in this way:
+
+               # perltidy (default)
+               @month_of_year = (
+                   'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
+                   'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'
+               );
+
+           Use the -\b-l\blp\bp flag to add extra indentation to cause the data to begin past the opening parentheses of a sub
+           call or list, or opening square bracket of an anonymous array, or opening curly brace of an anonymous hash.
+           With this option, the above list would become:
+
+               # perltidy -lp
+               @month_of_year = (
+                                  'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
+                                  'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'
+               );
+
+           If the available line length (see -\b-l\bl=\b=n\bn ) does not permit this much space, perltidy will use less.   For
+           alternate placement of the closing paren, see the next section.
+
+           This option has no effect on code BLOCKS, such as if/then/else blocks, which always use whatever is
+           specified with -\b-i\bi=\b=n\bn.
+
+           In situations where perltidy does not have complete freedom to choose line breaks it may temporarily revert
+           to its default indentation method.  This can occur for example if there are blank lines, block comments,
+           multi-line quotes, or side comments between the opening and closing parens, braces, or brackets.
+
+           In addition, any parameter which significantly restricts the ability of perltidy to choose newlines will
+           conflict with -\b-l\blp\bp and will cause -\b-l\blp\bp to be deactivated.  These include -\b-i\bio\bo, -\b-f\bfn\bnl\bl, -\b-n\bna\ban\bnl\bl, and -\b-n\bnd\bdn\bnl\bl.  The
+           reason is that the -\b-l\blp\bp indentation style can require the careful coordination of an arbitrary number of
+           break points in hierarchical lists, and these flags may prevent that.
+
+           The -\b-l\blp\bp option may not be used together with the -\b-t\bt tabs option.  It may, however, be used with the -\b-e\bet\bt=\b=n\bn
+           tab method.
+
+       -\b-l\blp\bpx\bxl\bl=\b=s\bs,  -\b--\b-l\bli\bin\bne\be-\b-u\bup\bp-\b-p\bpa\bar\bre\ben\bnt\bth\bhe\bes\bse\bes\bs-\b-e\bex\bxc\bcl\blu\bus\bsi\bio\bon\bn-\b-l\bli\bis\bst\bt
+           This is an experimental parameter; the details might change as experience with it is gained.
+
+           The -\b-l\blp\bp indentation style works well for some types of coding but can produce very long lines when variables
+           have long names and/or containers are very deeply nested.  The -\b-l\blp\bpx\bxl\bl=\b=s\bs flag is intended to help mitigate
+           this problem by providing control over the containers to which the -\b-l\blp\bp indentation style is applied.  The
+           -\b-l\blp\bp flag by default is "greedy" and applies to as many containers as possible.  This flag specifies a list
+           of things which should n\bno\bot\bt be use -\b-l\blp\bp indentation.
+
+           This list is a string with space-separated items.  Each item consists of up to three pieces of information
+           in this order: (1) an optional letter code (2) a required container type, and (3) an optional numeric code.
+
+           The only required piece of information is a container type, which is one of '(', '[', or '{'.  For example
+           the string
+
+             -lpxl='[ {'
+
+           means do N\bNO\bOT\bT include use -lp formatting within square-bracets or braces.  The only unspecified container is
+           '(', so this string means that only the contents within parens will use -lp indentation.
+
+           An optional numeric code may follow any of the container types to further refine the selection based on
+           container contents.  The numeric codes are:
+
+             '0' or blank: no check on contents
+             '1' reject -lp unless the contents is a simple list without sublists
+             '2' reject -lp unless the contents is a simple list without sublists, without
+                 code blocks, and without ternary operators
+
+           For example,
+
+             -lpxl = '[ { (2'
+
+           means only apply -lp to parenthesized lists which do not contain any sublists, code blocks or ternary
+           expressions.
+
+           A third optional item of information which can be given for parens is an alphanumeric letter which is used
+           to limit the selection further depending on the type of token immediately before the paren.  The possible
+           letters are currently 'k', 'K', 'f', 'F', 'w', and 'W', with these meanings:
+
+            'k' matches if the previous nonblank token is a perl builtin keyword (such as 'if', 'while'),
+            'K' matches if 'k' does not, meaning that the previous token is not a keyword.
+            'f' matches if the previous token is a function other than a keyword.
+            'F' matches if 'f' does not.
+            'w' matches if either 'k' or 'f' match.
+            'W' matches if 'w' does not.
+
+           For example,
+
+             -lpxl = '[ { F(2'
+
+           means only apply -lp to parenthesized lists which follow a function call and which do not contain any
+           sublists, code blocks or ternary expressions.  The logic of writing these codes is somewhat counter-
+           intuitive because they describe what is not getting the -lp indentation.  So the 'F' indicates that non-
+           function calls are not getting -lp, or in other words that function calls are getting the -lp indentation.
+
+       -\b-c\bct\bti\bi=\b=n\bn, -\b--\b-c\bcl\blo\bos\bsi\bin\bng\bg-\b-t\bto\bok\bke\ben\bn-\b-i\bin\bnd\bde\ben\bnt\bta\bat\bti\bio\bon\bn
+           The -\b-c\bct\bti\bi=\b=n\bn flag controls the indentation of a line beginning with a ")", "]", or a non-block "}".  Such a
+           line receives:
+
+            -cti = 0 no extra indentation (default)
+            -cti = 1 extra indentation such that the closing token
+                   aligns with its opening token.
+            -cti = 2 one extra indentation level if the line looks like:
+                   );  or  ];  or  };
+            -cti = 3 one extra indentation level always
+
+           The flags -\b-c\bct\bti\bi=\b=1\b1 and -\b-c\bct\bti\bi=\b=2\b2 work well with the -\b-l\blp\bp flag (previous section).
+
+               # perltidy -lp -cti=1
+               @month_of_year = (
+                                  'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
+                                  'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'
+                                );
+
+               # perltidy -lp -cti=2
+               @month_of_year = (
+                                  'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
+                                  'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'
+                                  );
+
+           These flags are merely hints to the formatter and they may not always be followed.  In particular, if -lp is
+           not being used, the indentation for c\bct\bti\bi=\b=1\b1 is constrained to be no more than one indentation level.
+
+           If desired, this control can be applied independently to each of the closing container token types.  In
+           fact, -\b-c\bct\bti\bi=\b=n\bn is merely an abbreviation for -\b-c\bcp\bpi\bi=\b=n\bn -\b-c\bcs\bsb\bbi\bi=\b=n\bn -\b-c\bcb\bbi\bi=\b=n\bn, where: -\b-c\bcp\bpi\bi or -\b--\b-c\bcl\blo\bos\bsi\bin\bng\bg-\b-p\bpa\bar\bre\ben\bn-\b-i\bin\bnd\bde\ben\bnt\bta\bat\bti\bio\bon\bn
+           controls )\b)'s, -\b-c\bcs\bsb\bbi\bi or -\b--\b-c\bcl\blo\bos\bsi\bin\bng\bg-\b-s\bsq\bqu\bua\bar\bre\be-\b-b\bbr\bra\bac\bck\bke\bet\bt-\b-i\bin\bnd\bde\ben\bnt\bta\bat\bti\bio\bon\bn controls ]\b]'s, -\b-c\bcb\bbi\bi or
+           -\b--\b-c\bcl\blo\bos\bsi\bin\bng\bg-\b-b\bbr\bra\bac\bce\be-\b-i\bin\bnd\bde\ben\bnt\bta\bat\bti\bio\bon\bn controls non-block }\b}'s.
+
+       -\b-i\bic\bcp\bp, -\b--\b-i\bin\bnd\bde\ben\bnt\bt-\b-c\bcl\blo\bos\bsi\bin\bng\bg-\b-p\bpa\bar\bre\ben\bn
+           The -\b-i\bic\bcp\bp flag is equivalent to -\b-c\bct\bti\bi=\b=2\b2, described in the previous section.  The -\b-n\bni\bic\bcp\bp flag is equivalent
+           -\b-c\bct\bti\bi=\b=0\b0.  They are included for backwards compatibility.
+
+       -\b-i\bic\bcb\bb, -\b--\b-i\bin\bnd\bde\ben\bnt\bt-\b-c\bcl\blo\bos\bsi\bin\bng\bg-\b-b\bbr\bra\bac\bce\be
+           The -\b-i\bic\bcb\bb option gives one extra level of indentation to a brace which terminates a code block .  For
+           example,
+
+                   if ($task) {
+                       yyy();
+                       }    # -icb
+                   else {
+                       zzz();
+                       }
+
+           The default is not to do this, indicated by -\b-n\bni\bic\bcb\bb.
+
+       -\b-n\bni\bib\bb, -\b--\b-n\bno\bon\bn-\b-i\bin\bnd\bde\ben\bnt\bti\bin\bng\bg-\b-b\bbr\bra\bac\bce\bes\bs
+           Normally, lines of code contained within a pair of block braces receive one additional level of indentation.
+           This flag, which is enabled by default, causes perltidy to look for opening block braces which are followed
+           by a special side comment. This special side comment is #\b#<\b<<\b<<\b< by default.  If found, the code between this
+           opening brace and its corresponding closing brace will not be given the normal extra indentation level.  For
+           example:
+
+                       { #<<<   a closure to contain lexical vars
+
+                       my $var;  # this line does not get one level of indentation
+                       ...
+
+                       }
+
+                       # this line does not 'see' $var;
+
+           This can be useful, for example, when combining code from different files.  Different sections of code can
+           be placed within braces to keep their lexical variables from being visible to the end of the file.  To keep
+           the new braces from causing all of their contained code to be indented if you run perltidy, and possibly
+           introducing new line breaks in long lines, you can mark the opening braces with this special side comment.
+
+           Only the opening brace needs to be marked, since perltidy knows where the closing brace is.  Braces
+           contained within marked braces may also be marked as non-indenting.
+
+           If your code happens to have some opening braces followed by '#<<<', and you don't want this behavior, you
+           can use -\b-n\bnn\bni\bib\bb to deactivate it.  To make it easy to remember, the default string is the same as the string
+           for starting a f\bfo\bor\brm\bma\bat\bt-\b-s\bsk\bki\bip\bpp\bpi\bin\bng\bg section. There is no confusion because in that case it is for a block comment
+           rather than a side-comment.
+
+           The special side comment can be changed with the next parameter.
+
+       -\b-n\bni\bib\bbp\bp=\b=s\bs, -\b--\b-n\bno\bon\bn-\b-i\bin\bnd\bde\ben\bnt\bti\bin\bng\bg-\b-b\bbr\bra\bac\bce\be-\b-p\bpr\bre\bef\bfi\bix\bx=\b=s\bs
+           The -\b-n\bni\bib\bbp\bp=\b=s\bst\btr\bri\bin\bng\bg parameter may be used to change the marker for non-indenting braces.  The default is
+           equivalent to -nibp='#<<<'.  The string that you enter must begin with a # and should be in quotes as
+           necessary to get past the command shell of your system.  This string is the leading text of a regex pattern
+           that is constructed by appending pre-pending a '^' and appending a'\s', so you must also include backslashes
+           for characters to be taken literally rather than as patterns.
+
+           For example, to match the side comment '#++', the parameter would be
+
+             -nibp='#\+\+'
+
+       -\b-o\bol\blq\bq, -\b--\b-o\bou\but\btd\bde\ben\bnt\bt-\b-l\blo\bon\bng\bg-\b-q\bqu\buo\bot\bte\bes\bs
+           When -\b-o\bol\blq\bq is set, lines which is a quoted string longer than the value m\bma\bax\bxi\bim\bmu\bum\bm-\b-l\bli\bin\bne\be-\b-l\ble\ben\bng\bgt\bth\bh will have their
+           indentation removed to make them more readable.  This is the default.  To prevent such out-denting, use
+           -\b-n\bno\bol\blq\bq or -\b--\b-n\bno\boo\bou\but\btd\bde\ben\bnt\bt-\b-l\blo\bon\bng\bg-\b-l\bli\bin\bne\bes\bs.
+
+       -\b-o\bol\bll\bl, -\b--\b-o\bou\but\btd\bde\ben\bnt\bt-\b-l\blo\bon\bng\bg-\b-l\bli\bin\bne\bes\bs
+           This command is equivalent to -\b--\b-o\bou\but\btd\bde\ben\bnt\bt-\b-l\blo\bon\bng\bg-\b-q\bqu\buo\bot\bte\bes\bs and -\b--\b-o\bou\but\btd\bde\ben\bnt\bt-\b-l\blo\bon\bng\bg-\b-c\bco\bom\bmm\bme\ben\bnt\bts\bs, and it is included for
+           compatibility with previous versions of perltidy.  The negation of this also works, -\b-n\bno\bol\bll\bl or
+           -\b--\b-n\bno\boo\bou\but\btd\bde\ben\bnt\bt-\b-l\blo\bon\bng\bg-\b-l\bli\bin\bne\bes\bs, and is equivalent to setting -\b-n\bno\bol\blq\bq and -\b-n\bno\bol\blc\bc.
+
+       O\bOu\but\btd\bde\ben\bnt\bti\bin\bng\bg L\bLa\bab\bbe\bel\bls\bs:\b: -\b-o\bol\bla\ba,  -\b--\b-o\bou\but\btd\bde\ben\bnt\bt-\b-l\bla\bab\bbe\bel\bls\bs
+           This command will cause labels to be outdented by 2 spaces (or whatever -\b-c\bci\bi has been set to), if possible.
+           This is the default.  For example:
+
+                   my $i;
+                 LOOP: while ( $i = <FOTOS> ) {
+                       chomp($i);
+                       next unless $i;
+                       fixit($i);
+                   }
+
+           Use -\b-n\bno\bol\bla\ba to not outdent labels.
+
+       O\bOu\but\btd\bde\ben\bnt\bti\bin\bng\bg K\bKe\bey\byw\bwo\bor\brd\bds\bs
+           -\b-o\bok\bkw\bw,  -\b--\b-o\bou\but\btd\bde\ben\bnt\bt-\b-k\bke\bey\byw\bwo\bor\brd\bds\bs
+               The command -\b-o\bok\bkw\bw will cause certain leading control keywords to be outdented by 2 spaces (or whatever
+               -\b-c\bci\bi has been set to), if possible.  By default, these keywords are "redo", "next", "last", "goto", and
+               "return".  The intention is to make these control keywords easier to see.  To change this list of
+               keywords being outdented, see the next section.
+
+               For example, using "perltidy -okw" on the previous example gives:
+
+                       my $i;
+                     LOOP: while ( $i = <FOTOS> ) {
+                           chomp($i);
+                         next unless $i;
+                           fixit($i);
+                       }
+
+               The default is not to do this.
+
+           S\bSp\bpe\bec\bci\bif\bfy\byi\bin\bng\bg O\bOu\but\btd\bde\ben\bnt\bte\bed\bd K\bKe\bey\byw\bwo\bor\brd\bds\bs:\b: -\b-o\bok\bkw\bwl\bl=\b=s\bst\btr\bri\bin\bng\bg,  -\b--\b-o\bou\but\btd\bde\ben\bnt\bt-\b-k\bke\bey\byw\bwo\bor\brd\bd-\b-l\bli\bis\bst\bt=\b=s\bst\btr\bri\bin\bng\bg
+               This command can be used to change the keywords which are outdented with the -\b-o\bok\bkw\bw command.  The
+               parameter s\bst\btr\bri\bin\bng\bg is a required list of perl keywords, which should be placed in quotes if there are more
+               than one.  By itself, it does not cause any outdenting to occur, so the -\b-o\bok\bkw\bw command is still required.
+
+               For example, the commands "-okwl="next last redo goto" -okw" will cause those four keywords to be
+               outdented.  It is probably simplest to place any -\b-o\bok\bkw\bwl\bl command in a _\b._\bp_\be_\br_\bl_\bt_\bi_\bd_\by_\br_\bc file.
+
+   W\bWh\bhi\bit\bte\bes\bsp\bpa\bac\bce\be C\bCo\bon\bnt\btr\bro\bol\bl
+       Whitespace refers to the blank space between variables, operators, and other code tokens.
+
+       -\b-f\bfw\bws\bs,  -\b--\b-f\bfr\bre\bee\bez\bze\be-\b-w\bwh\bhi\bit\bte\bes\bsp\bpa\bac\bce\be
+           This flag causes your original whitespace to remain unchanged, and causes the rest of the whitespace
+           commands in this section, the Code Indentation section, and the Comment Control section to be ignored.
+
+       T\bTi\big\bgh\bht\btn\bne\bes\bss\bs o\bof\bf c\bcu\bur\brl\bly\by b\bbr\bra\bac\bce\bes\bs,\b, p\bpa\bar\bre\ben\bnt\bth\bhe\bes\bse\bes\bs,\b, a\ban\bnd\bd s\bsq\bqu\bua\bar\bre\be b\bbr\bra\bac\bck\bke\bet\bts\bs
+           Here the term "tightness" will mean the closeness with which pairs of enclosing tokens, such as parentheses,
+           contain the quantities within.  A numerical value of 0, 1, or 2 defines the tightness, with 0 being least
+           tight and 2 being most tight.  Spaces within containers are always symmetric, so if there is a space after a
+           "(" then there will be a space before the corresponding ")".
+
+           The -\b-p\bpt\bt=\b=n\bn or -\b--\b-p\bpa\bar\bre\ben\bn-\b-t\bti\big\bgh\bht\btn\bne\bes\bss\bs=\b=n\bn parameter controls the space within parens.  The example below shows the
+           effect of the three possible values, 0, 1, and 2:
+
+            if ( ( my $len_tab = length( $tabstr ) ) > 0 ) {  # -pt=0
+            if ( ( my $len_tab = length($tabstr) ) > 0 ) {    # -pt=1 (default)
+            if ((my $len_tab = length($tabstr)) > 0) {        # -pt=2
+
+           When n is 0, there is always a space to the right of a '(' and to the left of a ')'.  For n=2 there is never
+           a space.  For n=1, the default, there is a space unless the quantity within the parens is a single token,
+           such as an identifier or quoted string.
+
+           Likewise, the parameter -\b-s\bsb\bbt\bt=\b=n\bn or -\b--\b-s\bsq\bqu\bua\bar\bre\be-\b-b\bbr\bra\bac\bck\bke\bet\bt-\b-t\bti\big\bgh\bht\btn\bne\bes\bss\bs=\b=n\bn controls the space within square brackets, as
+           illustrated below.
+
+            $width = $col[ $j + $k ] - $col[ $j ];  # -sbt=0
+            $width = $col[ $j + $k ] - $col[$j];    # -sbt=1 (default)
+            $width = $col[$j + $k] - $col[$j];      # -sbt=2
+
+           Curly braces which do not contain code blocks are controlled by the parameter -\b-b\bbt\bt=\b=n\bn or -\b--\b-b\bbr\bra\bac\bce\be-\b-t\bti\big\bgh\bht\btn\bne\bes\bss\bs=\b=n\bn.
+
+            $obj->{ $parsed_sql->{ 'table' }[0] };    # -bt=0
+            $obj->{ $parsed_sql->{'table'}[0] };      # -bt=1 (default)
+            $obj->{$parsed_sql->{'table'}[0]};        # -bt=2
+
+           And finally, curly braces which contain blocks of code are controlled by the parameter -\b-b\bbb\bbt\bt=\b=n\bn or
+           -\b--\b-b\bbl\blo\boc\bck\bk-\b-b\bbr\bra\bac\bce\be-\b-t\bti\big\bgh\bht\btn\bne\bes\bss\bs=\b=n\bn as illustrated in the example below.
+
+            %bf = map { $_ => -M $_ } grep { /\.deb$/ } dirents '.'; # -bbt=0 (default)
+            %bf = map { $_ => -M $_ } grep {/\.deb$/} dirents '.';   # -bbt=1
+            %bf = map {$_ => -M $_} grep {/\.deb$/} dirents '.';     # -bbt=2
+
+           To simplify input in the case that all of the tightness flags have the same value <n>, the parameter
+           <-act=n> or -\b--\b-a\bal\bll\bl-\b-c\bco\bon\bnt\bta\bai\bin\bne\ber\brs\bs-\b-t\bti\big\bgh\bht\btn\bne\bes\bss\bs=\b=n\bn is an abbreviation for the combination <-pt=n -sbt=n -bt=n -bbt=n>.
+
+       -\b-t\bts\bso\bo,   -\b--\b-t\bti\big\bgh\bht\bt-\b-s\bse\bec\bcr\bre\bet\bt-\b-o\bop\bpe\ber\bra\bat\bto\bor\brs\bs
+           The flag -\b-t\bts\bso\bo causes certain perl token sequences (secret operators) which might be considered to be a
+           single operator to be formatted "tightly" (without spaces).  The operators currently modified by this flag
+           are:
+
+                0+  +0  ()x!! ~~<>  ,=>   =( )=
+
+           For example the sequence 0\b0 +\b+,  which converts a string to a number, would be formatted without a space: 0\b0+\b+
+           when the -\b-t\bts\bso\bo flag is set.  This flag is off by default.
+
+       -\b-s\bst\bts\bs,   -\b--\b-s\bsp\bpa\bac\bce\be-\b-t\bte\ber\brm\bmi\bin\bna\bal\bl-\b-s\bse\bem\bmi\bic\bco\bol\blo\bon\bn
+           Some programmers prefer a space before all terminal semicolons.  The default is for no such space, and is
+           indicated with -\b-n\bns\bst\bts\bs or -\b--\b-n\bno\bos\bsp\bpa\bac\bce\be-\b-t\bte\ber\brm\bmi\bin\bna\bal\bl-\b-s\bse\bem\bmi\bic\bco\bol\blo\bon\bn.
+
+                   $i = 1 ;     #  -sts
+                   $i = 1;      #  -nsts   (default)
+
+       -\b-s\bsf\bfs\bs,   -\b--\b-s\bsp\bpa\bac\bce\be-\b-f\bfo\bor\br-\b-s\bse\bem\bmi\bic\bco\bol\blo\bon\bn
+           Semicolons within f\bfo\bor\br loops may sometimes be hard to see, particularly when commas are also present.  This
+           option places spaces on both sides of these special semicolons, and is the default.  Use -\b-n\bns\bsf\bfs\bs or
+           -\b--\b-n\bno\bos\bsp\bpa\bac\bce\be-\b-f\bfo\bor\br-\b-s\bse\bem\bmi\bic\bco\bol\blo\bon\bn to deactivate it.
+
+            for ( @a = @$ap, $u = shift @a ; @a ; $u = $v ) {  # -sfs (default)
+            for ( @a = @$ap, $u = shift @a; @a; $u = $v ) {    # -nsfs
+
+       -\b-a\bas\bsc\bc,  -\b--\b-a\bad\bdd\bd-\b-s\bse\bem\bmi\bic\bco\bol\blo\bon\bns\bs
+           Setting -\b-a\bas\bsc\bc allows perltidy to add any missing optional semicolon at the end of a line which is followed by
+           a closing curly brace on the next line.  This is the default, and may be deactivated with -\b-n\bna\bas\bsc\bc or
+           -\b--\b-n\bno\boa\bad\bdd\bd-\b-s\bse\bem\bmi\bic\bco\bol\blo\bon\bns\bs.
+
+       -\b-d\bds\bsm\bm,  -\b--\b-d\bde\bel\ble\bet\bte\be-\b-s\bse\bem\bmi\bic\bco\bol\blo\bon\bns\bs
+           Setting -\b-d\bds\bsm\bm allows perltidy to delete extra semicolons which are simply empty statements.  This is the
+           default, and may be deactivated with -\b-n\bnd\bds\bsm\bm or -\b--\b-n\bno\bod\bde\bel\ble\bet\bte\be-\b-s\bse\bem\bmi\bic\bco\bol\blo\bon\bns\bs.  (Such semicolons are not deleted,
+           however, if they would promote a side comment to a block comment).
+
+       -\b-a\baw\bws\bs,  -\b--\b-a\bad\bdd\bd-\b-w\bwh\bhi\bit\bte\bes\bsp\bpa\bac\bce\be
+           Setting this option allows perltidy to add certain whitespace to improve code readability.  This is the
+           default. If you do not want any whitespace added, but are willing to have some whitespace deleted, use
+           -\b-n\bna\baw\bws\bs.  (Use -\b-f\bfw\bws\bs to leave whitespace completely unchanged).
+
+       -\b-d\bdw\bws\bs,  -\b--\b-d\bde\bel\ble\bet\bte\be-\b-o\bol\bld\bd-\b-w\bwh\bhi\bit\bte\bes\bsp\bpa\bac\bce\be
+           Setting this option allows perltidy to remove some old whitespace between characters, if necessary.  This is
+           the default.  If you do not want any old whitespace removed, use -\b-n\bnd\bdw\bws\bs or -\b--\b-n\bno\bod\bde\bel\ble\bet\bte\be-\b-o\bol\bld\bd-\b-w\bwh\bhi\bit\bte\bes\bsp\bpa\bac\bce\be.
+
+       D\bDe\bet\bta\bai\bil\ble\bed\bd w\bwh\bhi\bit\bte\bes\bsp\bpa\bac\bce\be c\bco\bon\bnt\btr\bro\bol\bls\bs a\bar\bro\bou\bun\bnd\bd t\bto\bok\bke\ben\bns\bs
+           For those who want more detailed control over the whitespace around tokens, there are four parameters which
+           can directly modify the default whitespace rules built into perltidy for any token.  They are:
+
+           -\b-w\bwl\bls\bs=\b=s\bs or -\b--\b-w\bwa\ban\bnt\bt-\b-l\ble\bef\bft\bt-\b-s\bsp\bpa\bac\bce\be=\b=s\bs,
+
+           -\b-n\bnw\bwl\bls\bs=\b=s\bs or -\b--\b-n\bno\bow\bwa\ban\bnt\bt-\b-l\ble\bef\bft\bt-\b-s\bsp\bpa\bac\bce\be=\b=s\bs,
+
+           -\b-w\bwr\brs\bs=\b=s\bs or -\b--\b-w\bwa\ban\bnt\bt-\b-r\bri\big\bgh\bht\bt-\b-s\bsp\bpa\bac\bce\be=\b=s\bs,
+
+           -\b-n\bnw\bwr\brs\bs=\b=s\bs or -\b--\b-n\bno\bow\bwa\ban\bnt\bt-\b-r\bri\big\bgh\bht\bt-\b-s\bsp\bpa\bac\bce\be=\b=s\bs.
+
+           These parameters are each followed by a quoted string, s\bs, containing a list of token types.  No more than
+           one of each of these parameters should be specified, because repeating a command-line parameter always
+           overwrites the previous one before perltidy ever sees it.
+
+           To illustrate how these are used, suppose it is desired that there be no space on either side of the token
+           types =\b= +\b+ -\b- /\b/ *\b*.  The following two parameters would specify this desire:
+
+             -nwls="= + - / *"    -nwrs="= + - / *"
+
+           (Note that the token types are in quotes, and that they are separated by spaces).  With these modified
+           whitespace rules, the following line of math:
+
+             $root = -$b + sqrt( $b * $b - 4. * $a * $c ) / ( 2. * $a );
+
+           becomes this:
+
+             $root=-$b+sqrt( $b*$b-4.*$a*$c )/( 2.*$a );
+
+           These parameters should be considered to be hints to perltidy rather than fixed rules, because perltidy must
+           try to resolve conflicts that arise between them and all of the other rules that it uses.  One conflict that
+           can arise is if, between two tokens, the left token wants a space and the right one doesn't.  In this case,
+           the token not wanting a space takes priority.
+
+           It is necessary to have a list of all token types in order to create this type of input.  Such a list can be
+           obtained by the command -\b--\b-d\bdu\bum\bmp\bp-\b-t\bto\bok\bke\ben\bn-\b-t\bty\byp\bpe\bes\bs.  Also try the -\b-D\bD flag on a short snippet of code and look at the
+           .DEBUG file to see the tokenization.
+
+           W\bWA\bAR\bRN\bNI\bIN\bNG\bG Be sure to put these tokens in quotes to avoid having them misinterpreted by your command shell.
+
+       N\bNo\bot\bte\be1\b1:\b: P\bPe\ber\brl\blt\bti\bid\bdy\by d\bdo\boe\bes\bs a\bal\blw\bwa\bay\bys\bs f\bfo\bol\bll\blo\bow\bw w\bwh\bhi\bit\bte\bes\bsp\bpa\bac\bce\be c\bco\bon\bnt\btr\bro\bol\bls\bs
+           The various parameters controlling whitespace within a program are requests which perltidy follows as well
+           as possible, but there are a number of situations where changing whitespace could change program behavior
+           and is not done.  Some of these are obvious; for example, we should not remove the space between the two
+           plus symbols in '$x+ +$y' to avoid creating a '++' operator. Some are more subtle and involve the whitespace
+           around bareword symbols and locations of possible filehandles.  For example, consider the problem of
+           formatting the following subroutine:
+
+              sub print_div {
+                 my ($x,$y)=@_;
+                 print $x/$y;
+              }
+
+           Suppose the user requests that / signs have a space to the left but not to the right. Perltidy will refuse
+           to do this, but if this were done the result would be
+
+              sub print_div {
+                  my ($x,$y)=@_;
+                  print $x /$y;
+              }
+
+           If formatted in this way, the program will not run (at least with recent versions of perl) because the $x is
+           taken to be a filehandle and / is assumed to start a quote. In a complex program, there might happen to be a
+           / which terminates the multiline quote without a syntax error, allowing the program to run, but not as
+           intended.
+
+           Related issues arise with other binary operator symbols, such as + and -, and in older versions of perl
+           there could be problems with ternary operators.  So to avoid changing program behavior, perltidy has the
+           simple rule that whitespace around possible filehandles is left unchanged.  Likewise, whitespace around
+           barewords is left unchanged.  The reason is that if the barewords are defined in other modules, or in code
+           that has not even been written yet, perltidy will not have seen their prototypes and must treat them
+           cautiously.
+
+           In perltidy this is implemented in the tokenizer by marking token following a p\bpr\bri\bin\bnt\bt keyword as a special
+           type Z\bZ.  When formatting is being done, whitespace following this token type is generally left unchanged as
+           a precaution against changing program behavior.  This is excessively conservative but simple and easy to
+           implement.  Keywords which are treated similarly to p\bpr\bri\bin\bnt\bt include p\bpr\bri\bin\bnt\btf\bf, s\bso\bor\brt\bt, e\bex\bxe\bec\bc, s\bsy\bys\bst\bte\bem\bm.  Changes in
+           spacing around parameters following these keywords may have to be made manually.  For example, the space, or
+           lack of space, after the parameter $foo in the following line will be unchanged in formatting.
+
+              system($foo );
+              system($foo);
+
+           To find if a token is of type Z\bZ you can use p\bpe\ber\brl\blt\bti\bid\bdy\by -\b-D\bDE\bEB\bBU\bUG\bG. For the first line above the result is
+
+              1: system($foo );
+              1: kkkkkk{ZZZZb};
+
+           which shows that s\bsy\bys\bst\bte\bem\bm is type k\bk (keyword) and $foo is type Z\bZ.
+
+       N\bNo\bot\bte\be2\b2:\b: P\bPe\ber\brl\blt\bti\bid\bdy\by'\b's\bs w\bwh\bhi\bit\bte\bes\bsp\bpa\bac\bce\be r\bru\bul\ble\bes\bs a\bar\bre\be n\bno\bot\bt p\bpe\ber\brf\bfe\bec\bct\bt
+           Despite these precautions, it is still possible to introduce syntax errors with some asymmetric whitespace
+           rules, particularly when call parameters are not placed in containing parens or braces.  For example, the
+           following two lines will be parsed by perl without a syntax error:
+
+             # original programming, syntax ok
+             my @newkeys = map $_-$nrecs+@data, @oldkeys;
+
+             # perltidy default, syntax ok
+             my @newkeys = map $_ - $nrecs + @data, @oldkeys;
+
+           But the following will give a syntax error:
+
+             # perltidy -nwrs='-'
+             my @newkeys = map $_ -$nrecs + @data, @oldkeys;
+
+           For another example, the following two lines will be parsed without syntax error:
+
+             # original programming, syntax ok
+             for my $severity ( reverse $SEVERITY_LOWEST+1 .. $SEVERITY_HIGHEST ) { ...  }
+
+             # perltidy default, syntax ok
+             for my $severity ( reverse $SEVERITY_LOWEST + 1 .. $SEVERITY_HIGHEST ) { ... }
+
+           But the following will give a syntax error:
+
+             # perltidy -nwrs='+', syntax error:
+             for my $severity ( reverse $SEVERITY_LOWEST +1 .. $SEVERITY_HIGHEST ) { ... }
+
+           To avoid subtle parsing problems like this, it is best to avoid spacing a binary operator asymetrically with
+           a space on the left but not on the right.
+
+       S\bSp\bpa\bac\bce\be b\bbe\bet\btw\bwe\bee\ben\bn s\bsp\bpe\bec\bci\bif\bfi\bic\bc k\bke\bey\byw\bwo\bor\brd\bds\bs a\ban\bnd\bd o\bop\bpe\ben\bni\bin\bng\bg p\bpa\bar\bre\ben\bn
+           When an opening paren follows a Perl keyword, no space is introduced after the keyword, unless it is (by
+           default) one of these:
+
+              my local our and or xor eq ne if else elsif until unless
+              while for foreach return switch case given when
+
+           These defaults can be modified with two commands:
+
+           -\b-s\bsa\bak\bk=\b=s\bs  or -\b--\b-s\bsp\bpa\bac\bce\be-\b-a\baf\bft\bte\ber\br-\b-k\bke\bey\byw\bwo\bor\brd\bd=\b=s\bs  adds keywords.
+
+           -\b-n\bns\bsa\bak\bk=\b=s\bs  or -\b--\b-n\bno\bos\bsp\bpa\bac\bce\be-\b-a\baf\bft\bte\ber\br-\b-k\bke\bey\byw\bwo\bor\brd\bd=\b=s\bs  removes keywords.
+
+           where s\bs is a list of keywords (in quotes if necessary).  For example,
+
+             my ( $a, $b, $c ) = @_;    # default
+             my( $a, $b, $c ) = @_;     # -nsak="my local our"
+
+           The abbreviation -\b-n\bns\bsa\bak\bk=\b='\b'*\b*'\b' is equivalent to including all of the keywords in the above list.
+
+           When both -\b-n\bns\bsa\bak\bk=\b=s\bs and -\b-s\bsa\bak\bk=\b=s\bs commands are included, the -\b-n\bns\bsa\bak\bk=\b=s\bs command is executed first.  For example, to
+           have space after only the keywords (my, local, our) you could use -\b-n\bns\bsa\bak\bk=\b="\b"*\b*"\b" -\b-s\bsa\bak\bk=\b="\b"m\bmy\by l\blo\boc\bca\bal\bl o\bou\bur\br"\b".
+
+           To put a space after all keywords, see the next item.
+
+       S\bSp\bpa\bac\bce\be b\bbe\bet\btw\bwe\bee\ben\bn a\bal\bll\bl k\bke\bey\byw\bwo\bor\brd\bds\bs a\ban\bnd\bd o\bop\bpe\ben\bni\bin\bng\bg p\bpa\bar\bre\ben\bns\bs
+           When an opening paren follows a function or keyword, no space is introduced after the keyword except for the
+           keywords noted in the previous item.  To always put a space between a function or keyword and its opening
+           paren, use the command:
+
+           -\b-s\bsk\bkp\bp  or -\b--\b-s\bsp\bpa\bac\bce\be-\b-k\bke\bey\byw\bwo\bor\brd\bd-\b-p\bpa\bar\bre\ben\bn
+
+           You may also want to use the flag -\b-s\bsf\bfp\bp (next item) too.
+
+       S\bSp\bpa\bac\bce\be b\bbe\bet\btw\bwe\bee\ben\bn a\bal\bll\bl f\bfu\bun\bnc\bct\bti\bio\bon\bn n\bna\bam\bme\bes\bs a\ban\bnd\bd o\bop\bpe\ben\bni\bin\bng\bg p\bpa\bar\bre\ben\bns\bs
+           When an opening paren follows a function the default and recommended formatting is not to introduce a space.
+           To cause a space to be introduced use:
+
+           -\b-s\bsf\bfp\bp  or -\b--\b-s\bsp\bpa\bac\bce\be-\b-f\bfu\bun\bnc\bct\bti\bio\bon\bn-\b-p\bpa\bar\bre\ben\bn
+
+             myfunc( $a, $b, $c );    # default
+             myfunc ( $a, $b, $c );   # -sfp
+
+           You will probably also want to use the flag -\b-s\bsk\bkp\bp (previous item) too.
+
+           The reason this is not recommended is that spacing a function paren can make a program vulnerable to parsing
+           problems by Perl.  For example, the following two-line program will run as written but will have a syntax
+           error if reformatted with -sfp:
+
+             if ( -e filename() ) { print "I'm here\n"; }
+             sub filename { return $0 }
+
+           In this particular case the syntax error can be removed if the line order is reversed, so that Perl parses
+           'sub filename' first.
+
+       -\b-f\bfp\bpv\bva\ba  or -\b--\b-f\bfu\bun\bnc\bct\bti\bio\bon\bn-\b-p\bpa\bar\bre\ben\bn-\b-v\bve\ber\brt\bti\bic\bca\bal\bl-\b-a\bal\bli\big\bgn\bnm\bme\ben\bnt\bt
+           A side-effect of using the -\b-s\bsf\bfp\bp flag is that the parens may become vertically aligned. For example,
+
+               # perltidy -sfp
+               myfun     ( $aaa, $b, $cc );
+               mylongfun ( $a, $b, $c );
+
+           This is the default behavior.  To prevent this alignment use -\b-n\bnf\bfp\bpv\bva\ba:
+
+               # perltidy -sfp -nfpva
+               myfun ( $aaa, $b, $cc );
+               mylongfun ( $a, $b, $c );
+
+       -\b-s\bsp\bpp\bp=\b=n\bn  or -\b--\b-s\bsp\bpa\bac\bce\be-\b-p\bpr\bro\bot\bto\bot\bty\byp\bpe\be-\b-p\bpa\bar\bre\ben\bn=\b=n\bn
+           This flag can be used to control whether a function prototype is preceded by a space.  For example, the
+           following prototype does not have a space.
+
+                 sub usage();
+
+           This integer n\bn may have the value 0, 1, or 2 as follows:
+
+               -spp=0 means no space before the paren
+               -spp=1 means follow the example of the source code [DEFAULT]
+               -spp=2 means always put a space before the paren
+
+           The default is -\b-s\bsp\bpp\bp=\b=1\b1, meaning that a space will be used if and only if there is one in the source code.
+           Given the above line of code, the result of applying the different options would be:
+
+                   sub usage();    # n=0 [no space]
+                   sub usage();    # n=1 [default; follows input]
+                   sub usage ();   # n=2 [space]
+
+       -\b-k\bkp\bpi\bit\bt=\b=n\bn or -\b--\b-k\bke\bey\byw\bwo\bor\brd\bd-\b-p\bpa\bar\bre\ben\bn-\b-i\bin\bnn\bne\ber\br-\b-t\bti\big\bgh\bht\btn\bne\bes\bss\bs=\b=n\bn
+           The space inside of an opening paren, which itself follows a certain keyword, can be controlled by this
+           parameter.  The space on the inside of the corresponding closing paren will be treated in the same
+           (balanced) manner.  This parameter has precedence over any other paren spacing rules.  The values of n\bn are
+           as follows:
+
+              -kpit=0 means always put a space (not tight)
+              -kpit=1 means ignore this parameter [default]
+              -kpit=2 means never put a space (tight)
+
+           To illustrate, the following snippet is shown formatted in three ways:
+
+               if ( seek( DATA, 0, 0 ) ) { ... }    # perltidy (default)
+               if (seek(DATA, 0, 0)) { ... }        # perltidy -pt=2
+               if ( seek(DATA, 0, 0) ) { ... }      # perltidy -pt=2 -kpit=0
+
+           In the second case the -pt=2 parameter makes all of the parens tight. In the third case the -kpit=0 flag
+           causes the space within the 'if' parens to have a space, since 'if' is one of the keywords to which the
+           -kpit flag applies by default.  The remaining parens are still tight because of the -pt=2 parameter.
+
+           The set of keywords to which this parameter applies are by default are:
+
+              if elsif unless while until for foreach
+
+           These can be changed with the parameter -\b-k\bkp\bpi\bit\btl\bl=\b=s\bs described in the next section.
+
+       -\b-k\bkp\bpi\bit\btl\bl=\b=s\bst\btr\bri\bin\bng\bg or -\b--\b-k\bke\bey\byw\bwo\bor\brd\bd-\b-p\bpa\bar\bre\ben\bn-\b-i\bin\bnn\bne\ber\br-\b-t\bti\big\bgh\bht\btn\bne\bes\bss\bs=\b=s\bst\btr\bri\bin\bng\bg
+           This command can be used to change the keywords to which the the -\b-k\bkp\bpi\bit\bt=\b=n\bn command applies.  The parameter
+           s\bst\btr\bri\bin\bng\bg is a required list either keywords or functions, which should be placed in quotes if there are more
+           than one.  By itself, this parameter does not cause any change in spacing, so the -\b-k\bkp\bpi\bit\bt=\b=n\bn command is still
+           required.
+
+           For example, the commands "-kpitl="if else while" -kpit=2" will cause the just the spaces inside parens
+           following  'if', 'else', and 'while' keywords to follow the tightness value indicated by the -\b-k\bkp\bpi\bit\bt=\b=2\b2 flag.
+
+       -\b-l\blo\bop\bp  or -\b--\b-l\blo\bog\bgi\bic\bca\bal\bl-\b-p\bpa\bad\bdd\bdi\bin\bng\bg
+           In the following example some extra space has been inserted on the second line between the two open parens.
+           This extra space is called "logical padding" and is intended to help align similar things vertically in some
+           logical or ternary expressions.
+
+               # perltidy [default formatting]
+               $same =
+                 (      ( $aP eq $bP )
+                     && ( $aS eq $bS )
+                     && ( $aT eq $bT )
+                     && ( $a->{'title'} eq $b->{'title'} )
+                     && ( $a->{'href'} eq $b->{'href'} ) );
+
+           Note that this is considered to be a different operation from "vertical alignment" because space at just one
+           line is being adjusted, whereas in "vertical alignment" the spaces at all lines are being adjusted. So it
+           sort of a local version of vertical alignment.
+
+           Here is an example involving a ternary operator:
+
+               # perltidy [default formatting]
+               $bits =
+                   $top > 0xffff ? 32
+                 : $top > 0xff   ? 16
+                 : $top > 1      ? 8
+                 :                 1;
+
+           This behavior is controlled with the flag -\b--\b-l\blo\bog\bgi\bic\bca\bal\bl-\b-p\bpa\bad\bdd\bdi\bin\bng\bg, which is set 'on' by default.  If it is not
+           desired it can be turned off using -\b--\b-n\bno\bol\blo\bog\bgi\bic\bca\bal\bl-\b-p\bpa\bad\bdd\bdi\bin\bng\bg or -\b-n\bnl\blo\bop\bp.  The above two examples become, with -\b-n\bnl\blo\bop\bp:
+
+               # perltidy -nlop
+               $same =
+                 ( ( $aP eq $bP )
+                     && ( $aS eq $bS )
+                     && ( $aT eq $bT )
+                     && ( $a->{'title'} eq $b->{'title'} )
+                     && ( $a->{'href'} eq $b->{'href'} ) );
+
+               # perltidy -nlop
+               $bits =
+                 $top > 0xffff ? 32
+                 : $top > 0xff ? 16
+                 : $top > 1    ? 8
+                 :               1;
+
+       T\bTr\bri\bim\bmm\bmi\bin\bng\bg w\bwh\bhi\bit\bte\bes\bsp\bpa\bac\bce\be a\bar\bro\bou\bun\bnd\bd "\b"q\bqw\bw"\b" q\bqu\buo\bot\bte\bes\bs
+           -\b-t\btq\bqw\bw or -\b--\b-t\btr\bri\bim\bm-\b-q\bqw\bw provide the default behavior of trimming spaces around multi-line "qw" quotes and
+           indenting them appropriately.
+
+           -\b-n\bnt\btq\bqw\bw or -\b--\b-n\bno\bot\btr\bri\bim\bm-\b-q\bqw\bw cause leading and trailing whitespace around multi-line "qw" quotes to be left
+           unchanged.  This option will not normally be necessary, but was added for testing purposes, because in some
+           versions of perl, trimming "qw" quotes changes the syntax tree.
+
+       -\b-s\bsb\bbq\bq=\b=n\bn  or -\b--\b-s\bsp\bpa\bac\bce\be-\b-b\bba\bac\bck\bks\bsl\bla\bas\bsh\bh-\b-q\bqu\buo\bot\bte\be=\b=n\bn
+           lines like
+
+                  $str1=\"string1";
+                  $str2=\'string2';
+
+           can confuse syntax highlighters unless a space is included between the backslash and the single or double
+           quotation mark.
+
+           this can be controlled with the value of n\bn as follows:
+
+               -sbq=0 means no space between the backslash and quote
+               -sbq=1 means follow the example of the source code
+               -sbq=2 means always put a space between the backslash and quote
+
+           The default is -\b-s\bsb\bbq\bq=\b=1\b1, meaning that a space will be used if there is one in the source code.
+
+       T\bTr\bri\bim\bmm\bmi\bin\bng\bg t\btr\bra\bai\bil\bli\bin\bng\bg w\bwh\bhi\bit\bte\bes\bsp\bpa\bac\bce\be f\bfr\bro\bom\bm l\bli\bin\bne\bes\bs o\bof\bf P\bPO\bOD\bD
+           -\b-t\btr\brp\bp or -\b--\b-t\btr\bri\bim\bm-\b-p\bpo\bod\bd will remove trailing whitespace from lines of POD.  The default is not to do this.
+
+   C\bCo\bom\bmm\bme\ben\bnt\bt C\bCo\bon\bnt\btr\bro\bol\bls\bs
+       Perltidy has a number of ways to control the appearance of both block comments and side comments.  The term
+       b\bbl\blo\boc\bck\bk c\bco\bom\bmm\bme\ben\bnt\bt here refers to a full-line comment, whereas s\bsi\bid\bde\be c\bco\bom\bmm\bme\ben\bnt\bt will refer to a comment which appears on
+       a line to the right of some code.
+
+       -\b-i\bib\bbc\bc,  -\b--\b-i\bin\bnd\bde\ben\bnt\bt-\b-b\bbl\blo\boc\bck\bk-\b-c\bco\bom\bmm\bme\ben\bnt\bts\bs
+           Block comments normally look best when they are indented to the same level as the code which follows them.
+           This is the default behavior, but you may use -\b-n\bni\bib\bbc\bc to keep block comments left-justified.  Here is an
+           example:
+
+                        # this comment is indented      (-ibc, default)
+                        if ($task) { yyy(); }
+
+           The alternative is -\b-n\bni\bib\bbc\bc:
+
+            # this comment is not indented              (-nibc)
+                        if ($task) { yyy(); }
+
+           See also the next item, -\b-i\bis\bsb\bbc\bc, as well as -\b-s\bsb\bbc\bc, for other ways to have some indented and some outdented
+           block comments.
+
+       -\b-i\bis\bsb\bbc\bc,  -\b--\b-i\bin\bnd\bde\ben\bnt\bt-\b-s\bsp\bpa\bac\bce\bed\bd-\b-b\bbl\blo\boc\bck\bk-\b-c\bco\bom\bmm\bme\ben\bnt\bts\bs
+           If there is no leading space on the line, then the comment will not be indented, and otherwise it may be.
+
+           If both -\b-i\bib\bbc\bc and -\b-i\bis\bsb\bbc\bc are set, then -\b-i\bis\bsb\bbc\bc takes priority.
+
+       -\b-o\bol\blc\bc, -\b--\b-o\bou\but\btd\bde\ben\bnt\bt-\b-l\blo\bon\bng\bg-\b-c\bco\bom\bmm\bme\ben\bnt\bts\bs
+           When -\b-o\bol\blc\bc is set, lines which are full-line (block) comments longer than the value m\bma\bax\bxi\bim\bmu\bum\bm-\b-l\bli\bin\bne\be-\b-l\ble\ben\bng\bgt\bth\bh will
+           have their indentation removed.  This is the default; use -\b-n\bno\bol\blc\bc to prevent outdenting.
+
+       -\b-m\bms\bsc\bc=\b=n\bn,  -\b--\b-m\bmi\bin\bni\bim\bmu\bum\bm-\b-s\bsp\bpa\bac\bce\be-\b-t\bto\bo-\b-c\bco\bom\bmm\bme\ben\bnt\bt=\b=n\bn
+           Side comments look best when lined up several spaces to the right of code.  Perltidy will try to keep
+           comments at least n spaces to the right.  The default is n=4 spaces.
+
+       -\b-f\bfp\bps\bsc\bc=\b=n\bn,  -\b--\b-f\bfi\bix\bxe\bed\bd-\b-p\bpo\bos\bsi\bit\bti\bio\bon\bn-\b-s\bsi\bid\bde\be-\b-c\bco\bom\bmm\bme\ben\bnt\bt=\b=n\bn
+           This parameter tells perltidy to line up side comments in column number n\bn whenever possible.  The default,
+           n=0, will not do this.
+
+       -\b-i\bis\bsc\bcl\bl,  -\b--\b-i\big\bgn\bno\bor\bre\be-\b-s\bsi\bid\bde\be-\b-c\bco\bom\bmm\bme\ben\bnt\bt-\b-l\ble\ben\bng\bgt\bth\bhs\bs
+           This parameter causes perltidy to ignore the length of side comments when setting line breaks.  The default,
+           -\b-n\bni\bis\bsc\bcl\bl, is to include the length of side comments when breaking lines to stay within the length prescribed
+           by the -\b-l\bl=\b=n\bn maximum line length parameter.  For example, the following long single line would remain intact
+           with -l=80 and -iscl:
+
+                perltidy -l=80 -iscl
+                   $vmsfile =~ s/;[\d\-]*$//; # Clip off version number; we can use a newer version as well
+
+           whereas without the -iscl flag the line will be broken:
+
+                perltidy -l=80
+                   $vmsfile =~ s/;[\d\-]*$//
+                     ;    # Clip off version number; we can use a newer version as well
+
+       -\b-h\bhs\bsc\bc, -\b--\b-h\bha\ban\bng\bgi\bin\bng\bg-\b-s\bsi\bid\bde\be-\b-c\bco\bom\bmm\bme\ben\bnt\bts\bs
+           By default, perltidy tries to identify and align "hanging side comments", which are something like this:
+
+                   my $IGNORE = 0;    # This is a side comment
+                                      # This is a hanging side comment
+                                      # And so is this
+
+           A comment is considered to be a hanging side comment if (1) it immediately follows a line with a side
+           comment, or another hanging side comment, and (2) there is some leading whitespace on the line.  To
+           deactivate this feature, use -\b-n\bnh\bhs\bsc\bc or -\b--\b-n\bno\boh\bha\ban\bng\bgi\bin\bng\bg-\b-s\bsi\bid\bde\be-\b-c\bco\bom\bmm\bme\ben\bnt\bts\bs.  If block comments are preceded by a blank
+           line, or have no leading whitespace, they will not be mistaken as hanging side comments.
+
+       C\bCl\blo\bos\bsi\bin\bng\bg S\bSi\bid\bde\be C\bCo\bom\bmm\bme\ben\bnt\bts\bs
+           A closing side comment is a special comment which perltidy can automatically create and place after the
+           closing brace of a code block.  They can be useful for code maintenance and debugging.  The command -\b-c\bcs\bsc\bc (or
+           -\b--\b-c\bcl\blo\bos\bsi\bin\bng\bg-\b-s\bsi\bid\bde\be-\b-c\bco\bom\bmm\bme\ben\bnt\bts\bs) adds or updates closing side comments.  For example, here is a small code snippet
+
+                   sub message {
+                       if ( !defined( $_[0] ) ) {
+                           print("Hello, World\n");
+                       }
+                       else {
+                           print( $_[0], "\n" );
+                       }
+                   }
+
+           And here is the result of processing with "perltidy -csc":
+
+                   sub message {
+                       if ( !defined( $_[0] ) ) {
+                           print("Hello, World\n");
+                       }
+                       else {
+                           print( $_[0], "\n" );
+                       }
+                   } ## end sub message
+
+           A closing side comment was added for "sub message" in this case, but not for the "if" and "else" blocks,
+           because they were below the 6 line cutoff limit for adding closing side comments.  This limit may be changed
+           with the -\b-c\bcs\bsc\bci\bi command, described below.
+
+           The command -\b-d\bdc\bcs\bsc\bc (or -\b--\b-d\bde\bel\ble\bet\bte\be-\b-c\bcl\blo\bos\bsi\bin\bng\bg-\b-s\bsi\bid\bde\be-\b-c\bco\bom\bmm\bme\ben\bnt\bts\bs) reverses this process and removes these comments.
+
+           Several commands are available to modify the behavior of these two basic commands, -\b-c\bcs\bsc\bc and -\b-d\bdc\bcs\bsc\bc:
+
+           -\b-c\bcs\bsc\bci\bi=\b=n\bn, or -\b--\b-c\bcl\blo\bos\bsi\bin\bng\bg-\b-s\bsi\bid\bde\be-\b-c\bco\bom\bmm\bme\ben\bnt\bt-\b-i\bin\bnt\bte\ber\brv\bva\bal\bl=\b=n\bn
+               where "n" is the minimum number of lines that a block must have in order for a closing side comment to
+               be added.  The default value is "n=6".  To illustrate:
+
+                       # perltidy -csci=2 -csc
+                       sub message {
+                           if ( !defined( $_[0] ) ) {
+                               print("Hello, World\n");
+                           } ## end if ( !defined( $_[0] ))
+                           else {
+                               print( $_[0], "\n" );
+                           } ## end else [ if ( !defined( $_[0] ))
+                       } ## end sub message
+
+               Now the "if" and "else" blocks are commented.  However, now this has become very cluttered.
+
+           -\b-c\bcs\bsc\bcp\bp=\b=s\bst\btr\bri\bin\bng\bg, or -\b--\b-c\bcl\blo\bos\bsi\bin\bng\bg-\b-s\bsi\bid\bde\be-\b-c\bco\bom\bmm\bme\ben\bnt\bt-\b-p\bpr\bre\bef\bfi\bix\bx=\b=s\bst\btr\bri\bin\bng\bg
+               where string is the prefix used before the name of the block type.  The default prefix, shown above, is
+               "## end".  This string will be added to closing side comments, and it will also be used to recognize
+               them in order to update, delete, and format them.  Any comment identified as a closing side comment will
+               be placed just a single space to the right of its closing brace.
+
+           -\b-c\bcs\bsc\bcl\bl=\b=s\bst\btr\bri\bin\bng\bg, or -\b--\b-c\bcl\blo\bos\bsi\bin\bng\bg-\b-s\bsi\bid\bde\be-\b-c\bco\bom\bmm\bme\ben\bnt\bt-\b-l\bli\bis\bst\bt
+               where "string" is a list of block types to be tagged with closing side comments.  By default, all code
+               block types preceded by a keyword or label (such as "if", "sub", and so on) will be tagged.  The -\b-c\bcs\bsc\bcl\bl
+               command changes the default list to be any selected block types; see "Specifying Block Types".  For
+               example, the following command requests that only "sub"'s, labels, "BEGIN", and "END" blocks be affected
+               by any -\b-c\bcs\bsc\bc or -\b-d\bdc\bcs\bsc\bc operation:
+
+                  -cscl="sub : BEGIN END"
+
+           -\b-c\bcs\bsc\bct\bt=\b=n\bn, or -\b--\b-c\bcl\blo\bos\bsi\bin\bng\bg-\b-s\bsi\bid\bde\be-\b-c\bco\bom\bmm\bme\ben\bnt\bt-\b-m\bma\bax\bxi\bim\bmu\bum\bm-\b-t\bte\bex\bxt\bt=\b=n\bn
+               The text appended to certain block types, such as an "if" block, is whatever lies between the keyword
+               introducing the block, such as "if", and the opening brace.  Since this might be too much text for a
+               side comment, there needs to be a limit, and that is the purpose of this parameter.  The default value
+               is "n=20", meaning that no additional tokens will be appended to this text after its length reaches 20
+               characters.  Omitted text is indicated with "...".  (Tokens, including sub names, are never truncated,
+               however, so actual lengths may exceed this).  To illustrate, in the above example, the appended text of
+               the first block is " ( !defined( $_[0] )...".  The existing limit of "n=20" caused this text to be
+               truncated, as indicated by the "...".  See the next flag for additional control of the abbreviated text.
+
+           -\b-c\bcs\bsc\bcb\bb, or -\b--\b-c\bcl\blo\bos\bsi\bin\bng\bg-\b-s\bsi\bid\bde\be-\b-c\bco\bom\bmm\bme\ben\bnt\bts\bs-\b-b\bba\bal\bla\ban\bnc\bce\bed\bd
+               As discussed in the previous item, when the closing-side-comment-maximum-text limit is exceeded the
+               comment text must be truncated.  Older versions of perltidy terminated with three dots, and this can
+               still be achieved with -ncscb:
+
+                 perltidy -csc -ncscb
+                 } ## end foreach my $foo (sort { $b cmp $a ...
+
+               However this causes a problem with editors which cannot recognize comments or are not configured to do
+               so because they cannot "bounce" around in the text correctly.  The -\b-c\bcs\bsc\bcb\bb flag has been added to help
+               them by appending appropriate balancing structure:
+
+                 perltidy -csc -cscb
+                 } ## end foreach my $foo (sort { $b cmp $a ... })
+
+               The default is -\b-c\bcs\bsc\bcb\bb.
+
+           -\b-c\bcs\bsc\bce\be=\b=n\bn, or -\b--\b-c\bcl\blo\bos\bsi\bin\bng\bg-\b-s\bsi\bid\bde\be-\b-c\bco\bom\bmm\bme\ben\bnt\bt-\b-e\bel\bls\bse\be-\b-f\bfl\bla\bag\bg=\b=n\bn
+               The default, n\bn=\b=0\b0, places the text of the opening "if" statement after any terminal "else".
+
+               If n\bn=\b=2\b2 is used, then each "elsif" is also given the text of the opening "if" statement.  Also, an "else"
+               will include the text of a preceding "elsif" statement.  Note that this may result some long closing
+               side comments.
+
+               If n\bn=\b=1\b1 is used, the results will be the same as n\bn=\b=2\b2 whenever the resulting line length is less than the
+               maximum allowed.
+
+           -\b-c\bcs\bsc\bcb\bb, or -\b--\b-c\bcl\blo\bos\bsi\bin\bng\bg-\b-s\bsi\bid\bde\be-\b-c\bco\bom\bmm\bme\ben\bnt\bts\bs-\b-b\bba\bal\bla\ban\bnc\bce\bed\bd
+               When using closing-side-comments, and the closing-side-comment-maximum-text limit is exceeded, then the
+               comment text must be abbreviated.  It is terminated with three dots if the -\b-c\bcs\bsc\bcb\bb flag is negated:
+
+                 perltidy -csc -ncscb
+                 } ## end foreach my $foo (sort { $b cmp $a ...
+
+               This causes a problem with older editors which do not recognize comments because they cannot "bounce"
+               around in the text correctly.  The -\b-c\bcs\bsc\bcb\bb flag tries to help them by appending appropriate terminal
+               balancing structures:
+
+                 perltidy -csc -cscb
+                 } ## end foreach my $foo (sort { $b cmp $a ... })
+
+               The default is -\b-c\bcs\bsc\bcb\bb.
+
+           -\b-c\bcs\bsc\bcw\bw, or -\b--\b-c\bcl\blo\bos\bsi\bin\bng\bg-\b-s\bsi\bid\bde\be-\b-c\bco\bom\bmm\bme\ben\bnt\bt-\b-w\bwa\bar\brn\bni\bin\bng\bgs\bs
+               This parameter is intended to help make the initial transition to the use of closing side comments.  It
+               causes two things to happen if a closing side comment replaces an existing, different closing side
+               comment:  first, an error message will be issued, and second, the original side comment will be placed
+               alone on a new specially marked comment line for later attention.
+
+               The intent is to avoid clobbering existing hand-written side comments which happen to match the pattern
+               of closing side comments. This flag should only be needed on the first run with -\b-c\bcs\bsc\bc.
+
+           I\bIm\bmp\bpo\bor\brt\bta\ban\bnt\bt N\bNo\bot\bte\bes\bs o\bon\bn C\bCl\blo\bos\bsi\bin\bng\bg S\bSi\bid\bde\be C\bCo\bom\bmm\bme\ben\bnt\bts\bs:\b:
+
+           +\bo   Closing side comments are only placed on lines terminated with a closing brace.  Certain closing styles,
+               such as the use of cuddled elses (-\b-c\bce\be), preclude the generation of some closing side comments.
+
+           +\bo   Please note that adding or deleting of closing side comments takes place only through the commands -\b-c\bcs\bsc\bc
+               or -\b-d\bdc\bcs\bsc\bc.  The other commands, if used, merely modify the behavior of these two commands.
+
+           +\bo   It is recommended that the -\b-c\bcs\bsc\bcw\bw flag be used along with -\b-c\bcs\bsc\bc on the first use of perltidy on a given
+               file.  This will prevent loss of any existing side comment data which happens to have the csc prefix.
+
+           +\bo   Once you use -\b-c\bcs\bsc\bc, you should continue to use it so that any closing side comments remain correct as
+               code changes.  Otherwise, these comments will become incorrect as the code is updated.
+
+           +\bo   If you edit the closing side comments generated by perltidy, you must also change the prefix to be
+               different from the closing side comment prefix.  Otherwise, your edits will be lost when you rerun
+               perltidy with -\b-c\bcs\bsc\bc.   For example, you could simply change "## end" to be "## End", since the test is
+               case sensitive.  You may also want to use the -\b-s\bss\bsc\bc flag to keep these modified closing side comments
+               spaced the same as actual closing side comments.
+
+           +\bo   Temporarily generating closing side comments is a useful technique for exploring and/or debugging a perl
+               script, especially one written by someone else.  You can always remove them with -\b-d\bdc\bcs\bsc\bc.
+
+       S\bSt\bta\bat\bti\bic\bc B\bBl\blo\boc\bck\bk C\bCo\bom\bmm\bme\ben\bnt\bts\bs
+           Static block comments are block comments with a special leading pattern, "##" by default, which will be
+           treated slightly differently from other block comments.  They effectively behave as if they had glue along
+           their left and top edges, because they stick to the left edge and previous line when there is no blank
+           spaces in those places.  This option is particularly useful for controlling how commented code is displayed.
+
+           -\b-s\bsb\bbc\bc, -\b--\b-s\bst\bta\bat\bti\bic\bc-\b-b\bbl\blo\boc\bck\bk-\b-c\bco\bom\bmm\bme\ben\bnt\bts\bs
+               When -\b-s\bsb\bbc\bc is used, a block comment with a special leading pattern, "##" by default, will be treated
+               specially.
+
+               Comments so identified  are treated as follows:
+
+               +\bo   If there is no leading space on the line, then the comment will not be indented, and otherwise it
+                   may be,
+
+               +\bo   no new blank line will be inserted before such a comment, and
+
+               +\bo   such a comment will never become a hanging side comment.
+
+               For example, assuming @month_of_year is left-adjusted:
+
+                   @month_of_year = (    # -sbc (default)
+                       'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct',
+                   ##  'Dec', 'Nov'
+                       'Nov', 'Dec');
+
+               Without this convention, the above code would become
+
+                   @month_of_year = (   # -nsbc
+                       'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct',
+
+                       ##  'Dec', 'Nov'
+                       'Nov', 'Dec'
+                   );
+
+               which is not as clear.  The default is to use -\b-s\bsb\bbc\bc.  This may be deactivated with -\b-n\bns\bsb\bbc\bc.
+
+           -\b-s\bsb\bbc\bcp\bp=\b=s\bst\btr\bri\bin\bng\bg, -\b--\b-s\bst\bta\bat\bti\bic\bc-\b-b\bbl\blo\boc\bck\bk-\b-c\bco\bom\bmm\bme\ben\bnt\bt-\b-p\bpr\bre\bef\bfi\bix\bx=\b=s\bst\btr\bri\bin\bng\bg
+               This parameter defines the prefix used to identify static block comments when the -\b-s\bsb\bbc\bc parameter is set.
+               The default prefix is "##", corresponding to "-sbcp=##".  The prefix is actually part of a perl pattern
+               used to match lines and it must either begin with "#" or "^#".  In the first case a prefix ^\s* will be
+               added to match any leading whitespace, while in the second case the pattern will match only comments
+               with no leading whitespace.  For example, to identify all comments as static block comments, one would
+               use "-sbcp=#".  To identify all left-adjusted comments as static block comments, use "-sbcp='^#'".
+
+               Please note that -\b-s\bsb\bbc\bcp\bp merely defines the pattern used to identify static block comments; it will not be
+               used unless the switch -\b-s\bsb\bbc\bc is set.  Also, please be aware that since this string is used in a perl
+               regular expression which identifies these comments, it must enable a valid regular expression to be
+               formed.
+
+               A pattern which can be useful is:
+
+                   -sbcp=^#{2,}[^\s#]
+
+               This pattern requires a static block comment to have at least one character which is neither a # nor a
+               space.  It allows a line containing only '#' characters to be rejected as a static block comment.  Such
+               lines are often used at the start and end of header information in subroutines and should not be
+               separated from the intervening comments, which typically begin with just a single '#'.
+
+           -\b-o\bos\bsb\bbc\bc, -\b--\b-o\bou\but\btd\bde\ben\bnt\bt-\b-s\bst\bta\bat\bti\bic\bc-\b-b\bbl\blo\boc\bck\bk-\b-c\bco\bom\bmm\bme\ben\bnt\bts\bs
+               The command -\b-o\bos\bsb\bbc\bc will cause static block comments to be outdented by 2 spaces (or whatever -\b-c\bci\bi=\b=n\bn has
+               been set to), if possible.
+
+       S\bSt\bta\bat\bti\bic\bc S\bSi\bid\bde\be C\bCo\bom\bmm\bme\ben\bnt\bts\bs
+           Static side comments are side comments with a special leading pattern.  This option can be useful for
+           controlling how commented code is displayed when it is a side comment.
+
+           -\b-s\bss\bsc\bc, -\b--\b-s\bst\bta\bat\bti\bic\bc-\b-s\bsi\bid\bde\be-\b-c\bco\bom\bmm\bme\ben\bnt\bts\bs
+               When -\b-s\bss\bsc\bc is used, a side comment with a static leading pattern, which is "##" by default, will be
+               spaced only a single space from previous character, and it will not be vertically aligned with other
+               side comments.
+
+               The default is -\b-n\bns\bss\bsc\bc.
+
+           -\b-s\bss\bsc\bcp\bp=\b=s\bst\btr\bri\bin\bng\bg, -\b--\b-s\bst\bta\bat\bti\bic\bc-\b-s\bsi\bid\bde\be-\b-c\bco\bom\bmm\bme\ben\bnt\bt-\b-p\bpr\bre\bef\bfi\bix\bx=\b=s\bst\btr\bri\bin\bng\bg
+               This parameter defines the prefix used to identify static side comments when the -\b-s\bss\bsc\bc parameter is set.
+               The default prefix is "##", corresponding to "-sscp=##".
+
+               Please note that -\b-s\bss\bsc\bcp\bp merely defines the pattern used to identify static side comments; it will not be
+               used unless the switch -\b-s\bss\bsc\bc is set.  Also, note that this string is used in a perl regular expression
+               which identifies these comments, so it must enable a valid regular expression to be formed.
+
+   S\bSk\bki\bip\bpp\bpi\bin\bng\bg S\bSe\bel\ble\bec\bct\bte\bed\bd S\bSe\bec\bct\bti\bio\bon\bns\bs o\bof\bf C\bCo\bod\bde\be
+       Selected lines of code may be passed verbatim to the output without any formatting by marking the starting and
+       ending lines with special comments.  There are two options for doing this.  The first option is called
+       -\b--\b-f\bfo\bor\brm\bma\bat\bt-\b-s\bsk\bki\bip\bpp\bpi\bin\bng\bg or -\b-f\bfs\bs, and the second option is called -\b--\b-c\bco\bod\bde\be-\b-s\bsk\bki\bip\bpp\bpi\bin\bng\bg or -\b-c\bcs\bs.
+
+       In both cases the lines of code will be output without any changes.  The difference is that in -\b--\b-f\bfo\bor\brm\bma\bat\bt-\b-s\bsk\bki\bip\bpp\bpi\bin\bng\bg
+       perltidy will still parse the marked lines of code and check for errors, whereas in -\b--\b-c\bco\bod\bde\be-\b-s\bsk\bki\bip\bpp\bpi\bin\bng\bg perltidy
+       will simply pass the lines to the output without any checking.
+
+       Both of these features are enabled by default and are invoked with special comment markers.  -\b--\b-f\bfo\bor\brm\bma\bat\bt-\b-s\bsk\bki\bip\bpp\bpi\bin\bng\bg
+       uses starting and ending markers '#<<<' and '#>>>', like this:
+
+        #<<<  format skipping: do not let perltidy change my nice formatting
+           my @list = (1,
+                       1, 1,
+                       1, 2, 1,
+                       1, 3, 3, 1,
+                       1, 4, 6, 4, 1,);
+        #>>>
+
+       -\b--\b-c\bco\bod\bde\be-\b-s\bsk\bki\bip\bpp\bpi\bin\bng\bg uses starting and ending markers '#<<V' and '#>>V', like this:
+
+        #<<V  code skipping: perltidy will pass this verbatim without error checking
+
+           token ident_digit {
+               [ [ <?word> | _ | <?digit> ] <?ident_digit>
+               |   <''>
+               ]
+           };
+
+        #>>V
+
+       Additional text may appear on the special comment lines provided that it is separated from the marker by at
+       least one space, as in the above examples.
+
+       It is recommended to use -\b--\b-c\bco\bod\bde\be-\b-s\bsk\bki\bip\bpp\bpi\bin\bng\bg only if you need to hide a block of an extended syntax which would
+       produce errors if parsed by perltidy, and use -\b--\b-f\bfo\bor\brm\bma\bat\bt-\b-s\bsk\bki\bip\bpp\bpi\bin\bng\bg otherwise.  This is because the
+       -\b--\b-f\bfo\bor\brm\bma\bat\bt-\b-s\bsk\bki\bip\bpp\bpi\bin\bng\bg option provides the benefits of error checking, and there are essentially no limitations on
+       which lines to which it can be applied.  The -\b--\b-c\bco\bod\bde\be-\b-s\bsk\bki\bip\bpp\bpi\bin\bng\bg option, on the other hand, does not do error
+       checking and its use is more restrictive because the code which remains, after skipping the marked lines, must
+       be syntactically correct code with balanced containers.
+
+       These features should be used sparingly to avoid littering code with markers, but they can be helpful for
+       working around occasional problems.
+
+       Note that it may be possible to avoid the use of -\b--\b-f\bfo\bor\brm\bma\bat\bt-\b-s\bsk\bki\bip\bpp\bpi\bin\bng\bg for the specific case of a comma-separated
+       list of values, as in the above example, by simply inserting a blank or comment somewhere between the opening
+       and closing parens.  See the section "Controlling List Formatting".
+
+       The following sections describe the available controls for these options.  They should not normally be needed.
+
+       -\b-f\bfs\bs,  -\b--\b-f\bfo\bor\brm\bma\bat\bt-\b-s\bsk\bki\bip\bpp\bpi\bin\bng\bg
+           As explained above, this flag, which is enabled by default, causes any code between special beginning and
+           ending comment markers to be passed to the output without formatting.  The code between the comments is
+           still checked for errors however.  The default beginning marker is #<<< and the default ending marker is
+           #>>>.
+
+           Format skipping begins when a format skipping beginning comment is seen and continues until a format-
+           skipping ending comment is found.
+
+           This feature can be disabled with -\b-n\bnf\bfs\bs.   This should not normally be necessary.
+
+       -\b-f\bfs\bsb\bb=\b=s\bst\btr\bri\bin\bng\bg,  -\b--\b-f\bfo\bor\brm\bma\bat\bt-\b-s\bsk\bki\bip\bpp\bpi\bin\bng\bg-\b-b\bbe\beg\bgi\bin\bn=\b=s\bst\btr\bri\bin\bng\bg
+           This and the next parameter allow the special beginning and ending comments to be changed.  However, it is
+           recommended that they only be changed if there is a conflict between the default values and some other use.
+           If they are used, it is recommended that they only be entered in a .\b.p\bpe\ber\brl\blt\bti\bid\bdy\byr\brc\bc file, rather than on a
+           command line.  This is because properly escaping these parameters on a command line can be difficult.
+
+           If changed comment markers do not appear to be working, use the -\b-l\blo\bog\bg flag and examine the _\b._\bL_\bO_\bG file to see
+           if and where they are being detected.
+
+           The -\b-f\bfs\bsb\bb=\b=s\bst\btr\bri\bin\bng\bg parameter may be used to change the beginning marker for format skipping.  The default is
+           equivalent to -fsb='#<<<'.  The string that you enter must begin with a # and should be in quotes as
+           necessary to get past the command shell of your system.  It is actually the leading text of a pattern that
+           is constructed by appending a '\s', so you must also include backslashes for characters to be taken
+           literally rather than as patterns.
+
+           Some examples show how example strings become patterns:
+
+            -fsb='#\{\{\{' becomes /^#\{\{\{\s/  which matches  #{{{ but not #{{{{
+            -fsb='#\*\*'   becomes /^#\*\*\s/    which matches  #** but not #***
+            -fsb='#\*{2,}' becomes /^#\*{2,}\s/  which matches  #** and #*****
+
+       -\b-f\bfs\bse\be=\b=s\bst\btr\bri\bin\bng\bg,  -\b--\b-f\bfo\bor\brm\bma\bat\bt-\b-s\bsk\bki\bip\bpp\bpi\bin\bng\bg-\b-e\ben\bnd\bd=\b=s\bst\btr\bri\bin\bng\bg
+           The -\b-f\bfs\bse\be=\b=s\bst\btr\bri\bin\bng\bg is the corresponding parameter used to change the ending marker for format skipping.  The
+           default is equivalent to -fse='#<<<'.
+
+           The beginning and ending strings may be the same, but it is preferable to make them different for clarity.
+
+       -\b-c\bcs\bs,  -\b--\b-c\bco\bod\bde\be-\b-s\bsk\bki\bip\bpp\bpi\bin\bng\bg
+           As explained above, this flag, which is enabled by default, causes any code between special beginning and
+           ending comment markers to be directly passed to the output without any error checking or formatting.
+           Essentially, perltidy treats it as if it were a block of arbitrary text.  The default beginning marker is
+           #<<V and the default ending marker is #>>V.
+
+           This feature can be disabled with -\b-n\bnc\bcs\bs.   This should not normally be necessary.
+
+       -\b-c\bcs\bsb\bb=\b=s\bst\btr\bri\bin\bng\bg,  -\b--\b-c\bco\bod\bde\be-\b-s\bsk\bki\bip\bpp\bpi\bin\bng\bg-\b-b\bbe\beg\bgi\bin\bn=\b=s\bst\btr\bri\bin\bng\bg
+           This may be used to change the beginning comment for a -\b--\b-c\bco\bod\bde\be-\b-s\bsk\bki\bip\bpp\bpi\bin\bng\bg section, and its use is similar to
+           the -\b-f\bfs\bsb\bb=\b=s\bst\btr\bri\bin\bng\bg.  The default is equivalent to -csb='#<<V'.
+
+       -\b-c\bcs\bse\be=\b=s\bst\btr\bri\bin\bng\bg,  -\b--\b-c\bco\bod\bde\be-\b-s\bsk\bki\bip\bpp\bpi\bin\bng\bg-\b-e\ben\bnd\bd=\b=s\bst\btr\bri\bin\bng\bg
+           This may be used to change the ending comment for a -\b--\b-c\bco\bod\bde\be-\b-s\bsk\bki\bip\bpp\bpi\bin\bng\bg section, and its use is similar to the
+           -\b-f\bfs\bse\be=\b=s\bst\btr\bri\bin\bng\bg.  The default is equivalent to -cse='#>>V'.
+
+   L\bLi\bin\bne\be B\bBr\bre\bea\bak\bk C\bCo\bon\bnt\btr\bro\bol\bl
+       The parameters in this section control breaks after non-blank lines of code.  Blank lines are controlled
+       separately by parameters in the section "Blank Line Control".
+
+       -\b-f\bfn\bnl\bl,  -\b--\b-f\bfr\bre\bee\bez\bze\be-\b-n\bne\bew\bwl\bli\bin\bne\bes\bs
+           If you do not want any changes to the line breaks within lines of code in your script, set -\b-f\bfn\bnl\bl, and they
+           will remain fixed, and the rest of the commands in this section and sections "Controlling List Formatting",
+           "Retaining or Ignoring Existing Line Breaks".  You may want to use -\b-n\bno\bol\bll\bl with this.
+
+           Note: If you also want to keep your blank lines exactly as they are, you can use the -\b-f\bfb\bbl\bl flag which is
+           described in the section "Blank Line Control".
+
+       -\b-c\bce\be,   -\b--\b-c\bcu\bud\bdd\bdl\ble\bed\bd-\b-e\bel\bls\bse\be
+           Enable the "cuddled else" style, in which "else" and "elsif" are follow immediately after the curly brace
+           closing the previous block.  The default is not to use cuddled elses, and is indicated with the flag -\b-n\bnc\bce\be or
+           -\b--\b-n\bno\boc\bcu\bud\bdd\bdl\ble\bed\bd-\b-e\bel\bls\bse\be.  Here is a comparison of the alternatives:
+
+             # -ce
+             if ($task) {
+                 yyy();
+             } else {
+                 zzz();
+             }
+
+             # -nce (default)
+             if ($task) {
+                   yyy();
+             }
+             else {
+                   zzz();
+             }
+
+           In this example the keyword e\bel\bls\bse\be is placed on the same line which begins with the preceding closing block
+           brace and is followed by its own opening block brace on the same line.  Other keywords and function names
+           which are formatted with this "cuddled" style are e\bel\bls\bsi\bif\bf, c\bco\bon\bnt\bti\bin\bnu\bue\be, c\bca\bat\btc\bch\bh, f\bfi\bin\bna\bal\bll\bly\by.
+
+           Other block types can be formatted by specifying their names on a separate parameter -\b-c\bcb\bbl\bl, described in a
+           later section.
+
+           Cuddling between a pair of code blocks requires that the closing brace of the first block start a new line.
+           If this block is entirely on one line in the input file, it is necessary to decide if it should be broken to
+           allow cuddling.  This decision is controlled by the flag -\b-c\bcb\bbo\bo=\b=n\bn discussed below.  The default and
+           recommended value of -\b-c\bcb\bbo\bo=\b=1\b1 bases this decision on the first block in the chain.  If it spans multiple lines
+           then cuddling is made and continues along the chain, regardless of the sizes of subsequent blocks.
+           Otherwise, short lines remain intact.
+
+           So for example, the -\b-c\bce\be flag would not have any effect if the above snippet is rewritten as
+
+             if ($task) { yyy() }
+             else {    zzz() }
+
+           If the first block spans multiple lines, then cuddling can be done and will continue for the subsequent
+           blocks in the chain, as illustrated in the previous snippet.
+
+           If there are blank lines between cuddled blocks they will be eliminated.  If there are comments after the
+           closing brace where cuddling would occur then cuddling will be prevented.  If this occurs, cuddling will
+           restart later in the chain if possible.
+
+       -\b-c\bcb\bb,   -\b--\b-c\bcu\bud\bdd\bdl\ble\bed\bd-\b-b\bbl\blo\boc\bck\bks\bs
+           This flag is equivalent to -\b-c\bce\be.
+
+       -\b-c\bcb\bbl\bl,    -\b--\b-c\bcu\bud\bdd\bdl\ble\bed\bd-\b-b\bbl\blo\boc\bck\bk-\b-l\bli\bis\bst\bt
+           The built-in default cuddled block types are e\bel\bls\bse\be,\b, e\bel\bls\bsi\bif\bf,\b, c\bco\bon\bnt\bti\bin\bnu\bue\be,\b, c\bca\bat\btc\bch\bh,\b, f\bfi\bin\bna\bal\bll\bly\by.
+
+           Additional block types to which the -\b-c\bcu\bud\bdd\bdl\ble\bed\bd-\b-b\bbl\blo\boc\bck\bks\bs style applies can be defined by this parameter.  This
+           parameter is a character string, giving a list of block types separated by commas or spaces.  For example,
+           to cuddle code blocks of type sort, map and grep, in addition to the default types, the string could be set
+           to
+
+             -cbl="sort map grep"
+
+           or equivalently
+
+             -cbl=sort,map,grep
+
+           Note however that these particular block types are typically short so there might not be much opportunity
+           for the cuddled format style.
+
+           Using commas avoids the need to protect spaces with quotes.
+
+           As a diagnostic check, the flag -\b--\b-d\bdu\bum\bmp\bp-\b-c\bcu\bud\bdd\bdl\ble\bed\bd-\b-b\bbl\blo\boc\bck\bk-\b-l\bli\bis\bst\bt or -\b-d\bdc\bcb\bbl\bl can be used to view the hash of values
+           that are generated by this flag.
+
+           Finally, note that the -\b-c\bcb\bbl\bl flag by itself merely specifies which blocks are formatted with the cuddled
+           format. It has no effect unless this formatting style is activated with -\b-c\bce\be.
+
+       -\b-c\bcb\bbl\blx\bx,    -\b--\b-c\bcu\bud\bdd\bdl\ble\bed\bd-\b-b\bbl\blo\boc\bck\bk-\b-l\bli\bis\bst\bt-\b-e\bex\bxc\bcl\blu\bus\bsi\biv\bve\be
+           When cuddled else formatting is selected with -\b-c\bce\be, setting this flag causes perltidy to ignore its built-in
+           defaults and rely exclusively on the block types specified on the -\b-c\bcb\bbl\bl flag described in the previous
+           section.  For example, to avoid using cuddled c\bca\bat\btc\bch\bh and f\bfi\bin\bna\bal\bll\bly\by, which among in the defaults, the following
+           set of parameters could be used:
+
+             perltidy -ce -cbl='else elsif continue' -cblx
+
+       -\b-c\bcb\bbo\bo=\b=n\bn,   -\b--\b-c\bcu\bud\bdd\bdl\ble\bed\bd-\b-b\bbr\bre\bea\bak\bk-\b-o\bop\bpt\bti\bio\bon\bn=\b=n\bn
+           Cuddled formatting is only possible between a pair of code blocks if the closing brace of the first block
+           starts a new line. If a block is encountered which is entirely on a single line, and cuddled formatting is
+           selected, it is necessary to make a decision as to whether or not to "break" the block, meaning to cause it
+           to span multiple lines.  This parameter controls that decision. The options are:
+
+              cbo=0  Never force a short block to break.
+              cbo=1  If the first of a pair of blocks is broken in the input file,
+                     then break the second [DEFAULT].
+              cbo=2  Break open all blocks for maximal cuddled formatting.
+
+           The default and recommended value is c\bcb\bbo\bo=\b=1\b1.  With this value, if the starting block of a chain spans
+           multiple lines, then a cascade of breaks will occur for remaining blocks causing the entire chain to be
+           cuddled.
+
+           The option c\bcb\bbo\bo=\b=0\b0 can produce erratic cuddling if there are numerous one-line blocks.
+
+           The option c\bcb\bbo\bo=\b=2\b2 produces maximal cuddling but will not allow any short blocks.
+
+       -\b-b\bbl\bl,    -\b--\b-o\bop\bpe\ben\bni\bin\bng\bg-\b-b\bbr\bra\bac\bce\be-\b-o\bon\bn-\b-n\bne\bew\bw-\b-l\bli\bin\bne\be
+           Use the flag -\b-b\bbl\bl to place the opening brace on a new line:
+
+             if ( $input_file eq '-' )    # -bl
+             {
+                 important_function();
+             }
+
+           This flag applies to all structural blocks, including named sub's (unless the -\b-s\bsb\bbl\bl flag is set -- see next
+           item).
+
+           The default style, -\b-n\bnb\bbl\bl, places an opening brace on the same line as the keyword introducing it.  For
+           example,
+
+             if ( $input_file eq '-' ) {   # -nbl (default)
+
+       -\b-s\bsb\bbl\bl,    -\b--\b-o\bop\bpe\ben\bni\bin\bng\bg-\b-s\bsu\bub\bb-\b-b\bbr\bra\bac\bce\be-\b-o\bon\bn-\b-n\bne\bew\bw-\b-l\bli\bin\bne\be
+           The flag -\b-s\bsb\bbl\bl can be used to override the value of -\b-b\bbl\bl for the opening braces of named sub's.  For example,
+
+            perltidy -sbl
+
+           produces this result:
+
+            sub message
+            {
+               if (!defined($_[0])) {
+                   print("Hello, World\n");
+               }
+               else {
+                   print($_[0], "\n");
+               }
+            }
+
+           This flag is negated with -\b-n\bns\bsb\bbl\bl.  If -\b-s\bsb\bbl\bl is not specified, the value of -\b-b\bbl\bl is used.
+
+       -\b-a\bas\bsb\bbl\bl,    -\b--\b-o\bop\bpe\ben\bni\bin\bng\bg-\b-a\ban\bno\bon\bny\bym\bmo\bou\bus\bs-\b-s\bsu\bub\bb-\b-b\bbr\bra\bac\bce\be-\b-o\bon\bn-\b-n\bne\bew\bw-\b-l\bli\bin\bne\be
+           The flag -\b-a\bas\bsb\bbl\bl is like the -\b-s\bsb\bbl\bl flag except that it applies to anonymous sub's instead of named subs. For
+           example
+
+            perltidy -asbl
+
+           produces this result:
+
+            $a = sub
+            {
+                if ( !defined( $_[0] ) ) {
+                    print("Hello, World\n");
+                }
+                else {
+                    print( $_[0], "\n" );
+                }
+            };
+
+           This flag is negated with -\b-n\bna\bas\bsb\bbl\bl, and the default is -\b-n\bna\bas\bsb\bbl\bl.
+
+       -\b-b\bbl\bli\bi,    -\b--\b-b\bbr\bra\bac\bce\be-\b-l\ble\bef\bft\bt-\b-a\ban\bnd\bd-\b-i\bin\bnd\bde\ben\bnt\bt
+           The flag -\b-b\bbl\bli\bi is the same as -\b-b\bbl\bl but in addition it causes one unit of continuation indentation ( see -\b-c\bci\bi )
+           to be placed before an opening and closing block braces.
+
+           For example,
+
+                   if ( $input_file eq '-' )    # -bli
+                     {
+                       important_function();
+                     }
+
+           By default, this extra indentation occurs for blocks of type: i\bif\bf, e\bel\bls\bsi\bif\bf, e\bel\bls\bse\be, u\bun\bnl\ble\bes\bss\bs, f\bfo\bor\br, f\bfo\bor\bre\bea\bac\bch\bh, s\bsu\bub\bb,
+           w\bwh\bhi\bil\ble\be, u\bun\bnt\bti\bil\bl, and also with a preceding label.  The next item shows how to change this.
+
+       -\b-b\bbl\bli\bil\bl=\b=s\bs,    -\b--\b-b\bbr\bra\bac\bce\be-\b-l\ble\bef\bft\bt-\b-a\ban\bnd\bd-\b-i\bin\bnd\bde\ben\bnt\bt-\b-l\bli\bis\bst\bt=\b=s\bs
+           Use this parameter to change the types of block braces for which the -\b-b\bbl\bli\bi flag applies; see "Specifying
+           Block Types".  For example, -\b-b\bbl\bli\bil\bl=\b='\b'i\bif\bf e\bel\bls\bsi\bif\bf e\bel\bls\bse\be'\b' would apply it to only "if/elsif/else" blocks.
+
+       -\b-b\bba\bar\br,    -\b--\b-o\bop\bpe\ben\bni\bin\bng\bg-\b-b\bbr\bra\bac\bce\be-\b-a\bal\blw\bwa\bay\bys\bs-\b-o\bon\bn-\b-r\bri\big\bgh\bht\bt
+           The default style, -\b-n\bnb\bbl\bl places the opening code block brace on a new line if it does not fit on the same
+           line as the opening keyword, like this:
+
+                   if ( $bigwasteofspace1 && $bigwasteofspace2
+                     || $bigwasteofspace3 && $bigwasteofspace4 )
+                   {
+                       big_waste_of_time();
+                   }
+
+           To force the opening brace to always be on the right, use the -\b-b\bba\bar\br flag.  In this case, the above example
+           becomes
+
+                   if ( $bigwasteofspace1 && $bigwasteofspace2
+                     || $bigwasteofspace3 && $bigwasteofspace4 ) {
+                       big_waste_of_time();
+                   }
+
+           A conflict occurs if both -\b-b\bbl\bl and -\b-b\bba\bar\br are specified.
+
+       -\b-o\bot\btr\br,  -\b--\b-o\bop\bpe\ben\bni\bin\bng\bg-\b-t\bto\bok\bke\ben\bn-\b-r\bri\big\bgh\bht\bt and related flags
+           The -\b-o\bot\btr\br flag is a hint that perltidy should not place a break between a comma and an opening token.  For
+           example:
+
+               # default formatting
+               push @{ $self->{$module}{$key} },
+                 {
+                   accno       => $ref->{accno},
+                   description => $ref->{description}
+                 };
+
+               # perltidy -otr
+               push @{ $self->{$module}{$key} }, {
+                   accno       => $ref->{accno},
+                   description => $ref->{description}
+                 };
+
+           The flag -\b-o\bot\btr\br is actually an abbreviation for three other flags which can be used to control parens, hash
+           braces, and square brackets separately if desired:
+
+             -opr  or --opening-paren-right
+             -ohbr or --opening-hash-brace-right
+             -osbr or --opening-square-bracket-right
+
+       -\b-b\bbb\bbh\bhb\bb=\b=n\bn,  -\b--\b-b\bbr\bre\bea\bak\bk-\b-b\bbe\bef\bfo\bor\bre\be-\b-h\bha\bas\bsh\bh-\b-b\bbr\bra\bac\bce\be=\b=n\bn and related flags
+           When a list of items spans multiple lines, the default formatting is to place the opening brace (or other
+           container token) at the end of the starting line, like this:
+
+               $romanNumerals = {
+                   one   => 'I',
+                   two   => 'II',
+                   three => 'III',
+                   four  => 'IV',
+               };
+
+           This flag can change the default behavior to cause a line break to be placed before the opening brace
+           according to the value given to the integer n\bn:
+
+             -bbhb=0 never break [default]
+             -bbhb=1 stable: break if the input script had a break
+             -bbhb=2 break if list is 'complex' (see note below)
+             -bbhb=3 always break
+
+           For example,
+
+               # perltidy -bbhb=3
+               $romanNumerals =
+                 {
+                   one   => 'I',
+                   two   => 'II',
+                   three => 'III',
+                   four  => 'IV',
+                 };
+
+           There are several points to note about this flag:
+
+           +\bo   This parameter only applies if the opening brace is preceded by an '=' or '=>'.
+
+           +\bo   This parameter only applies if the contents of the container looks like a list.  The contents need to
+               contain some commas or '=>'s at the next interior level to be considered a list.
+
+           +\bo   For the n\bn=\b=2\b2 option, a list is considered 'complex' if it is part of a nested list structure which spans
+               multiple lines in the input file.
+
+           +\bo   If multiple opening tokens have been 'welded' together with the -\b-w\bwn\bn parameter, then this parameter has
+               no effect.
+
+           +\bo   The indentation of the braces will normally be one level of continuation indentation by default.  This
+               can be changed with the parameter -\b-b\bbb\bbh\bhb\bbi\bi=\b=n\bn in the next section.
+
+           +\bo   Similar flags for controlling parens and square brackets are given in the subsequent section.
+
+       -\b-b\bbb\bbh\bhb\bbi\bi=\b=n\bn,  -\b--\b-b\bbr\bre\bea\bak\bk-\b-b\bbe\bef\bfo\bor\bre\be-\b-h\bha\bas\bsh\bh-\b-b\bbr\bra\bac\bce\be-\b-a\ban\bnd\bd-\b-i\bin\bnd\bde\ben\bnt\bt=\b=n\bn
+           This flag is a companion to -\b-b\bbb\bbh\bhb\bb=\b=n\bn for controlling the indentation of an opening hash brace which is placed
+           on a new line by that parameter.  The indentation is as follows:
+
+             -bbhbi=0 one continuation level [default]
+             -bbhbi=1 outdent by one continuation level
+             -bbhbi=2 indent one full indentation level
+
+           For example:
+
+               # perltidy -bbhb=3 -bbhbi=1
+               $romanNumerals =
+               {
+                   one   => 'I',
+                   two   => 'II',
+                   three => 'III',
+                   four  => 'IV',
+               };
+
+               # perltidy -bbhb=3 -bbhbi=2
+               $romanNumerals =
+                   {
+                   one   => 'I',
+                   two   => 'II',
+                   three => 'III',
+                   four  => 'IV',
+                   };
+
+           Note that this parameter has no effect unless -\b-b\bbb\bbh\bhb\bb=\b=n\bn is also set.
+
+       -\b-b\bbb\bbs\bsb\bb=\b=n\bn,  -\b--\b-b\bbr\bre\bea\bak\bk-\b-b\bbe\bef\bfo\bor\bre\be-\b-s\bsq\bqu\bua\bar\bre\be-\b-b\bbr\bra\bac\bck\bke\bet\bt=\b=n\bn
+           This flag is similar to the flag described above, except it applies to lists contained within square
+           brackets.
+
+             -bbsb=0 never break [default]
+             -bbsb=1 stable: break if the input script had a break
+             -bbsb=2 break if list is 'complex' (part of nested list structure)
+             -bbsb=3 always break
+
+       -\b-b\bbb\bbs\bsb\bbi\bi=\b=n\bn,  -\b--\b-b\bbr\bre\bea\bak\bk-\b-b\bbe\bef\bfo\bor\bre\be-\b-s\bsq\bqu\bua\bar\bre\be-\b-b\bbr\bra\bac\bck\bke\bet\bt-\b-a\ban\bnd\bd-\b-i\bin\bnd\bde\ben\bnt\bt=\b=n\bn
+           This flag is a companion to -\b-b\bbb\bbs\bsb\bb=\b=n\bn for controlling the indentation of an opening square bracket which is
+           placed on a new line by that parameter.  The indentation is as follows:
+
+             -bbsbi=0 one continuation level [default]
+             -bbsbi=1 outdent by one continuation level
+             -bbsbi=2 indent one full indentation level
+
+       -\b-b\bbb\bbp\bp=\b=n\bn,  -\b--\b-b\bbr\bre\bea\bak\bk-\b-b\bbe\bef\bfo\bor\bre\be-\b-p\bpa\bar\bre\ben\bn=\b=n\bn
+           This flag is similar to -\b-b\bbb\bbh\bhb\bb=\b=n\bn, described above, except it applies to lists contained within parens.
+
+             -bbp=0 never break [default]
+             -bbp=1 stable: break if the input script had a break
+             -bpb=2 break if list is 'complex' (part of nested list structure)
+             -bbp=3 always break
+
+       -\b-b\bbb\bbp\bpi\bi=\b=n\bn,  -\b--\b-b\bbr\bre\bea\bak\bk-\b-b\bbe\bef\bfo\bor\bre\be-\b-p\bpa\bar\bre\ben\bn-\b-a\ban\bnd\bd-\b-i\bin\bnd\bde\ben\bnt\bt=\b=n\bn
+           This flag is a companion to -\b-b\bbb\bbp\bp=\b=n\bn for controlling the indentation of an opening paren which is placed on a
+           new line by that parameter.  The indentation is as follows:
+
+             -bbpi=0 one continuation level [default]
+             -bbpi=1 outdent by one continuation level
+             -bbpi=2 indent one full indentation level
+
+       -\b-w\bwn\bn,  -\b--\b-w\bwe\bel\bld\bd-\b-n\bne\bes\bst\bte\bed\bd-\b-c\bco\bon\bnt\bta\bai\bin\bne\ber\brs\bs
+           The -\b-w\bwn\bn flag causes closely nested pairs of opening and closing container symbols (curly braces, brackets,
+           or parens) to be "welded" together, meaning that they are treated as if combined into a single unit, with
+           the indentation of the innermost code reduced to be as if there were just a single container symbol.
+
+           For example:
+
+                   # default formatting
+                   do {
+                       {
+                           next if $x == $y;
+                       }
+                   } until $x++ > $z;
+
+                   # perltidy -wn
+                   do { {
+                       next if $x == $y;
+                   } } until $x++ > $z;
+
+           When this flag is set perltidy makes a preliminary pass through the file and identifies all nested pairs of
+           containers.  To qualify as a nested pair, the closing container symbols must be immediately adjacent and the
+           opening symbols must either (1) be adjacent as in the above example, or (2) have an anonymous sub
+           declaration following an outer opening container symbol which is not a code block brace, or (3) have an
+           outer opening paren separated from the inner opening symbol by any single non-container symbol or something
+           that looks like a function evaluation, as illustrated in the next examples.
+
+           Any container symbol may serve as both the inner container of one pair and as the outer container of an
+           adjacent pair. Consequently, any number of adjacent opening or closing symbols may join together in weld.
+           For example, here are three levels of wrapped function calls:
+
+                   # default formatting
+                   my (@date_time) = Localtime(
+                       Date_to_Time(
+                           Add_Delta_DHMS(
+                               $year, $month,  $day, $hour, $minute, $second,
+                               '0',   $offset, '0',  '0'
+                           )
+                       )
+                   );
+
+                   # perltidy -wn
+                   my (@date_time) = Localtime( Date_to_Time( Add_Delta_DHMS(
+                       $year, $month,  $day, $hour, $minute, $second,
+                       '0',   $offset, '0',  '0'
+                   ) ) );
+
+           Notice how the indentation of the inner lines are reduced by two levels in this case.  This example also
+           shows the typical result of this formatting, namely it is a sandwich consisting of an initial opening layer,
+           a central section of any complexity forming the "meat" of the sandwich, and a final closing layer.  This
+           predictable structure helps keep the compacted structure readable.
+
+           The inner sandwich layer is required to be at least one line thick.  If this cannot be achieved, welding
+           does not occur.  This constraint can cause formatting to take a couple of iterations to stabilize when it is
+           first applied to a script. The -\b-c\bco\bon\bnv\bv flag can be used to insure that the final format is achieved in a
+           single run.
+
+           Here is an example illustrating a welded container within a welded containers:
+
+                   # default formatting
+                   $x->badd(
+                       bmul(
+                           $class->new(
+                               abs(
+                                   $sx * int( $xr->numify() ) & $sy * int( $yr->numify() )
+                               )
+                           ),
+                           $m
+                       )
+                   );
+
+                   # perltidy -wn
+                   $x->badd( bmul(
+                       $class->new( abs(
+                           $sx * int( $xr->numify() ) & $sy * int( $yr->numify() )
+                       ) ),
+                       $m
+                   ) );
+
+           The welded closing tokens are by default on a separate line but this can be modified with the -\b-v\bvt\btc\bc=\b=n\bn flag
+           (described in the next section).  For example, the same example adding -\b-v\bvt\btc\bc=\b=2\b2 is
+
+                   # perltidy -wn -vtc=2
+                   $x->badd( bmul(
+                       $class->new( abs(
+                           $sx * int( $xr->numify() ) & $sy * int( $yr->numify() ) ) ),
+                       $m ) );
+
+           This format option is quite general but there are some limitations.
+
+           One limitation is that any line length limit still applies and can cause long welded sections to be broken
+           into multiple lines.
+
+           Another limitation is that an opening symbol which delimits quoted text cannot be included in a welded pair.
+           This is because quote delimiters are treated specially in perltidy.
+
+           Finally, the stacking of containers defined by this flag have priority over any other container stacking
+           flags.  This is because any welding is done first.
+
+       -\b-w\bwn\bnx\bxl\bl=\b=s\bs,  -\b--\b-w\bwe\bel\bld\bd-\b-n\bne\bes\bst\bte\bed\bd-\b-e\bex\bxc\bcl\blu\bus\bsi\bio\bon\bn-\b-l\bli\bis\bst\bt
+           The -\b-w\bwn\bnx\bxl\bl=\b=s\bs flag provides some control over the types of containers which can be welded.  The -\b-w\bwn\bn flag by
+           default is "greedy" in welding adjacent containers.  If it welds more types of containers than desired, this
+           flag provides a capability to reduce the amount of welding by specifying a list of things which should n\bno\bot\bt
+           be welded.
+
+           The logic in perltidy to apply this is straightforward.  As each container token is being considered for
+           joining a weld, any exclusion rules are consulted and used to reject the weld if necessary.
+
+           This list is a string with space-separated items.  Each item consists of up to three pieces of information:
+           (1) an optional position, (2) an optional preceding type, and (3) a container type.
+
+           The only required piece of information is a container type, which is one of '(', '[', '{' or 'q'.  The first
+           three of these are container tokens and the last represents a quoted list.  For example the string
+
+             -wnxl='[ { q'
+
+           means do N\bNO\bOT\bT include square-bracets, braces, or quotes in any welds.  The only unspecified container is '(',
+           so this string means that only welds involving parens will be made.
+
+           To illustrate, following welded snippet consists of a chain of three welded containers with types '(' '['
+           and 'q':
+
+               # perltidy -wn
+               skip_symbols( [ qw(
+                   Perl_dump_fds
+                   Perl_ErrorNo
+                   Perl_GetVars
+                   PL_sys_intern
+               ) ] );
+
+           Even though the qw term uses parens as the quote delimiter, it has a special type 'q' here. If it appears in
+           a weld it always appears at the end of the welded chain.
+
+           Any of the container types '[', '{', and '(' may be prefixed with a position indicator which is either '^',
+           to indicate the first token of a welded sequence, or '.', to indicate an interior token of a welded
+           sequence.  (Since a quoted string 'q' always ends a chain it does need a position indicator).
+
+           For example, if we do not want a sequence of welded containers to start with a square bracket we could use
+
+             -wnxl='^['
+
+           In the above snippet, there is a square bracket but it does not start the chain, so the formatting would be
+           unchanged if it were formatted with this restriction.
+
+           A third optional item of information which can be given is an alphanumeric letter which is used to limit the
+           selection further depending on the type of token immediately before the container.  If given, it goes just
+           before the container symbol.  The possible letters are currently 'k', 'K', 'f', 'F', 'w', and 'W', with
+           these meanings:
+
+            'k' matches if the previous nonblank token is a perl builtin keyword (such as 'if', 'while'),
+            'K' matches if 'k' does not, meaning that the previous token is not a keyword.
+            'f' matches if the previous token is a function other than a keyword.
+            'F' matches if 'f' does not.
+            'w' matches if either 'k' or 'f' match.
+            'W' matches if 'w' does not.
+
+           For example, compare
+
+                   # perltidy -wn
+                   if ( defined( $_Cgi_Query{
+                       $Config{'methods'}{'authentication'}{'remote'}{'cgi'}{'username'}
+                   } ) )
+
+           with
+
+                   # perltidy -wn -wnxl='^K( {'
+                   if ( defined(
+                       $_Cgi_Query{ $Config{'methods'}{'authentication'}{'remote'}{'cgi'}
+                             {'username'} }
+                   ) )
+
+           The first case does maximum welding. In the second case the leading paren is retained by the rule (it would
+           have been rejected if preceded by a non-keyword) but the curly brace is rejected by the rule.
+
+           Here are some additional example strings and their meanings:
+
+               '^('   - the weld must not start with a paren
+               '.('   - the second and later tokens may not be parens
+               '.w('  - the second and later tokens may not keyword or function call parens
+               '('    - no parens in a weld
+               '^K('  - exclude a leading paren preceded by a non-keyword
+               '.k('  - exclude a secondary paren preceded by a keyword
+               '[ {'  - exclude all brackets and braces
+               '[ ( ^K{' - exclude everything except nested structures like do {{  ... }}
+
+       V\bVe\ber\brt\bti\bic\bca\bal\bl t\bti\big\bgh\bht\btn\bne\bes\bss\bs of non-block curly braces, parentheses, and square brackets.
+           These parameters control what shall be called vertical tightness.  Here are the main points:
+
+           +\bo   Opening tokens (except for block braces) are controlled by -\b-v\bvt\bt=\b=n\bn, or -\b--\b-v\bve\ber\brt\bti\bic\bca\bal\bl-\b-t\bti\big\bgh\bht\btn\bne\bes\bss\bs=\b=n\bn, where
+
+                -vt=0 always break a line after opening token (default).
+                -vt=1 do not break unless this would produce more than one
+                        step in indentation in a line.
+                -vt=2 never break a line after opening token
+
+           +\bo   You must also use the -\b-l\blp\bp flag when you use the -\b-v\bvt\bt flag; the reason is explained below.
+
+           +\bo   Closing tokens (except for block braces) are controlled by -\b-v\bvt\btc\bc=\b=n\bn, or -\b--\b-v\bve\ber\brt\bti\bic\bca\bal\bl-\b-t\bti\big\bgh\bht\btn\bne\bes\bss\bs-\b-c\bcl\blo\bos\bsi\bin\bng\bg=\b=n\bn,
+               where
+
+                -vtc=0 always break a line before a closing token (default),
+                -vtc=1 do not break before a closing token which is followed
+                       by a semicolon or another closing token, and is not in
+                       a list environment.
+                -vtc=2 never break before a closing token.
+                -vtc=3 Like -vtc=1 except always break before a closing token
+                       if the corresponding opening token follows an = or =>.
+
+               The rules for -\b-v\bvt\btc\bc=\b=1\b1 and -\b-v\bvt\btc\bc=\b=3\b3 are designed to maintain a reasonable balance between tightness and
+               readability in complex lists.
+
+           +\bo   Different controls may be applied to different token types, and it is also possible to control block
+               braces; see below.
+
+           +\bo   Finally, please note that these vertical tightness flags are merely hints to the formatter, and it
+               cannot always follow them.  Things which make it difficult or impossible include comments, blank lines,
+               blocks of code within a list, and possibly the lack of the -\b-l\blp\bp parameter.  Also, these flags may be
+               ignored for very small lists (2 or 3 lines in length).
+
+           Here are some examples:
+
+               # perltidy -lp -vt=0 -vtc=0
+               %romanNumerals = (
+                                  one   => 'I',
+                                  two   => 'II',
+                                  three => 'III',
+                                  four  => 'IV',
+               );
+
+               # perltidy -lp -vt=1 -vtc=0
+               %romanNumerals = ( one   => 'I',
+                                  two   => 'II',
+                                  three => 'III',
+                                  four  => 'IV',
+               );
+
+               # perltidy -lp -vt=1 -vtc=1
+               %romanNumerals = ( one   => 'I',
+                                  two   => 'II',
+                                  three => 'III',
+                                  four  => 'IV', );
+
+               # perltidy -vtc=3
+               my_function(
+                   one   => 'I',
+                   two   => 'II',
+                   three => 'III',
+                   four  => 'IV', );
+
+               # perltidy -vtc=3
+               %romanNumerals = (
+                   one   => 'I',
+                   two   => 'II',
+                   three => 'III',
+                   four  => 'IV',
+               );
+
+           In the last example for -\b-v\bvt\btc\bc=\b=3\b3, the opening paren is preceded by an equals so the closing paren is placed on
+           a new line.
+
+           The difference between -\b-v\bvt\bt=\b=1\b1 and -\b-v\bvt\bt=\b=2\b2 is shown here:
+
+               # perltidy -lp -vt=1
+               $init->add(
+                           mysprintf( "(void)find_threadsv(%s);",
+                                      cstring( $threadsv_names[ $op->targ ] )
+                           )
+               );
+
+               # perltidy -lp -vt=2
+               $init->add( mysprintf( "(void)find_threadsv(%s);",
+                                      cstring( $threadsv_names[ $op->targ ] )
+                           )
+               );
+
+           With -\b-v\bvt\bt=\b=1\b1, the line ending in "add(" does not combine with the next line because the next line is not
+           balanced.  This can help with readability, but -\b-v\bvt\bt=\b=2\b2 can be used to ignore this rule.
+
+           The tightest, and least readable, code is produced with both "-vt=2" and "-vtc=2":
+
+               # perltidy -lp -vt=2 -vtc=2
+               $init->add( mysprintf( "(void)find_threadsv(%s);",
+                                      cstring( $threadsv_names[ $op->targ ] ) ) );
+
+           Notice how the code in all of these examples collapses vertically as -\b-v\bvt\bt increases, but the indentation
+           remains unchanged.  This is because perltidy implements the -\b-v\bvt\bt parameter by first formatting as if -\b-v\bvt\bt=\b=0\b0,
+           and then simply overwriting one output line on top of the next, if possible, to achieve the desired vertical
+           tightness.  The -\b-l\blp\bp indentation style has been designed to allow this vertical collapse to occur, which is
+           why it is required for the -\b-v\bvt\bt parameter.
+
+           The -\b-v\bvt\bt=\b=n\bn and -\b-v\bvt\btc\bc=\b=n\bn parameters apply to each type of container token.  If desired, vertical tightness
+           controls can be applied independently to each of the closing container token types.
+
+           The parameters for controlling parentheses are -\b-p\bpv\bvt\bt=\b=n\bn or -\b--\b-p\bpa\bar\bre\ben\bn-\b-v\bve\ber\brt\bti\bic\bca\bal\bl-\b-t\bti\big\bgh\bht\btn\bne\bes\bss\bs=\b=n\bn, and -\b-p\bpv\bvt\btc\bc=\b=n\bn or
+           -\b--\b-p\bpa\bar\bre\ben\bn-\b-v\bve\ber\brt\bti\bic\bca\bal\bl-\b-t\bti\big\bgh\bht\btn\bne\bes\bss\bs-\b-c\bcl\blo\bos\bsi\bin\bng\bg=\b=n\bn.
+
+           Likewise, the parameters for square brackets are -\b-s\bsb\bbv\bvt\bt=\b=n\bn or -\b--\b-s\bsq\bqu\bua\bar\bre\be-\b-b\bbr\bra\bac\bck\bke\bet\bt-\b-v\bve\ber\brt\bti\bic\bca\bal\bl-\b-t\bti\big\bgh\bht\btn\bne\bes\bss\bs=\b=n\bn, and
+           -\b-s\bsb\bbv\bvt\btc\bc=\b=n\bn or -\b--\b-s\bsq\bqu\bua\bar\bre\be-\b-b\bbr\bra\bac\bck\bke\bet\bt-\b-v\bve\ber\brt\bti\bic\bca\bal\bl-\b-t\bti\big\bgh\bht\btn\bne\bes\bss\bs-\b-c\bcl\blo\bos\bsi\bin\bng\bg=\b=n\bn.
+
+           Finally, the parameters for controlling non-code block braces are -\b-b\bbv\bvt\bt=\b=n\bn or -\b--\b-b\bbr\bra\bac\bce\be-\b-v\bve\ber\brt\bti\bic\bca\bal\bl-\b-t\bti\big\bgh\bht\btn\bne\bes\bss\bs=\b=n\bn,
+           and -\b-b\bbv\bvt\btc\bc=\b=n\bn or -\b--\b-b\bbr\bra\bac\bce\be-\b-v\bve\ber\brt\bti\bic\bca\bal\bl-\b-t\bti\big\bgh\bht\btn\bne\bes\bss\bs-\b-c\bcl\blo\bos\bsi\bin\bng\bg=\b=n\bn.
+
+           In fact, the parameter -\b-v\bvt\bt=\b=n\bn is actually just an abbreviation for -\b-p\bpv\bvt\bt=\b=n\bn -\b-b\bbv\bvt\bt=\b=n\bn s\bsb\bbv\bvt\bt=\b=n\bn, and likewise -\b-v\bvt\btc\bc=\b=n\bn
+           is an abbreviation for -\b-p\bpv\bvt\btc\bc=\b=n\bn -\b-b\bbv\bvt\btc\bc=\b=n\bn -\b-s\bsb\bbv\bvt\btc\bc=\b=n\bn.
+
+       -\b-b\bbb\bbv\bvt\bt=\b=n\bn or -\b--\b-b\bbl\blo\boc\bck\bk-\b-b\bbr\bra\bac\bce\be-\b-v\bve\ber\brt\bti\bic\bca\bal\bl-\b-t\bti\big\bgh\bht\btn\bne\bes\bss\bs=\b=n\bn
+           The -\b-b\bbb\bbv\bvt\bt=\b=n\bn flag is just like the -\b-v\bvt\bt=\b=n\bn flag but applies to opening code block braces.
+
+            -bbvt=0 break after opening block brace (default).
+            -bbvt=1 do not break unless this would produce more than one
+                    step in indentation in a line.
+            -bbvt=2 do not break after opening block brace.
+
+           It is necessary to also use either -\b-b\bbl\bl or -\b-b\bbl\bli\bi for this to work, because, as with other vertical tightness
+           controls, it is implemented by simply overwriting a line ending with an opening block brace with the
+           subsequent line.  For example:
+
+               # perltidy -bli -bbvt=0
+               if ( open( FILE, "< $File" ) )
+                 {
+                   while ( $File = <FILE> )
+                     {
+                       $In .= $File;
+                       $count++;
+                     }
+                   close(FILE);
+                 }
+
+               # perltidy -bli -bbvt=1
+               if ( open( FILE, "< $File" ) )
+                 { while ( $File = <FILE> )
+                     { $In .= $File;
+                       $count++;
+                     }
+                   close(FILE);
+                 }
+
+           By default this applies to blocks associated with keywords i\bif\bf, e\bel\bls\bsi\bif\bf, e\bel\bls\bse\be, u\bun\bnl\ble\bes\bss\bs, f\bfo\bor\br, f\bfo\bor\bre\bea\bac\bch\bh, s\bsu\bub\bb,
+           w\bwh\bhi\bil\ble\be, u\bun\bnt\bti\bil\bl, and also with a preceding label.  This can be changed with the parameter -\b-b\bbb\bbv\bvt\btl\bl=\b=s\bst\btr\bri\bin\bng\bg, or
+           -\b--\b-b\bbl\blo\boc\bck\bk-\b-b\bbr\bra\bac\bce\be-\b-v\bve\ber\brt\bti\bic\bca\bal\bl-\b-t\bti\big\bgh\bht\btn\bne\bes\bss\bs-\b-l\bli\bis\bst\bt=\b=s\bst\btr\bri\bin\bng\bg, where s\bst\btr\bri\bin\bng\bg is a space-separated list of block types.  For
+           more information on the possible values of this string, see "Specifying Block Types"
+
+           For example, if we want to just apply this style to "if", "elsif", and "else" blocks, we could use "perltidy
+           -bli -bbvt=1 -bbvtl='if elsif else'".
+
+           There is no vertical tightness control for closing block braces; with one exception they will be placed on
+           separate lines.  The exception is that a cascade of closing block braces may be stacked on a single line.
+           See -\b-s\bsc\bcb\bbb\bb.
+
+       -\b-s\bso\bot\bt,  -\b--\b-s\bst\bta\bac\bck\bk-\b-o\bop\bpe\ben\bni\bin\bng\bg-\b-t\bto\bok\bke\ben\bns\bs and related flags
+           The -\b-s\bso\bot\bt flag tells perltidy to "stack" opening tokens when possible to avoid lines with isolated opening
+           tokens.
+
+           For example:
+
+               # default
+               $opt_c = Text::CSV_XS->new(
+                   {
+                       binary       => 1,
+                       sep_char     => $opt_c,
+                       always_quote => 1,
+                   }
+               );
+
+               # -sot
+               $opt_c = Text::CSV_XS->new( {
+                       binary       => 1,
+                       sep_char     => $opt_c,
+                       always_quote => 1,
+                   }
+               );
+
+           For detailed control of individual closing tokens the following controls can be used:
+
+             -sop  or --stack-opening-paren
+             -sohb or --stack-opening-hash-brace
+             -sosb or --stack-opening-square-bracket
+             -sobb or --stack-opening-block-brace
+
+           The flag -\b-s\bso\bot\bt is an abbreviation for -\b-s\bso\bop\bp -\b-s\bso\boh\bhb\bb -\b-s\bso\bos\bsb\bb.
+
+           The flag -\b-s\bso\bob\bbb\bb is an abbreviation for -\b-b\bbb\bbv\bvt\bt=\b=2\b2 -\b-b\bbb\bbv\bvt\btl\bl=\b='\b'*\b*'\b'.  This will case a cascade of opening block braces
+           to appear on a single line, although this an uncommon occurrence except in test scripts.
+
+       -\b-s\bsc\bct\bt,  -\b--\b-s\bst\bta\bac\bck\bk-\b-c\bcl\blo\bos\bsi\bin\bng\bg-\b-t\bto\bok\bke\ben\bns\bs and related flags
+           The -\b-s\bsc\bct\bt flag tells perltidy to "stack" closing tokens when possible to avoid lines with isolated closing
+           tokens.
+
+           For example:
+
+               # default
+               $opt_c = Text::CSV_XS->new(
+                   {
+                       binary       => 1,
+                       sep_char     => $opt_c,
+                       always_quote => 1,
+                   }
+               );
+
+               # -sct
+               $opt_c = Text::CSV_XS->new(
+                   {
+                       binary       => 1,
+                       sep_char     => $opt_c,
+                       always_quote => 1,
+                   } );
+
+           The -\b-s\bsc\bct\bt flag is somewhat similar to the -\b-v\bvt\btc\bc flags, and in some cases it can give a similar result.  The
+           difference is that the -\b-v\bvt\btc\bc flags try to avoid lines with leading opening tokens by "hiding" them at the end
+           of a previous line, whereas the -\b-s\bsc\bct\bt flag merely tries to reduce the number of lines with isolated closing
+           tokens by stacking them but does not try to hide them.  For example:
+
+               # -vtc=2
+               $opt_c = Text::CSV_XS->new(
+                   {
+                       binary       => 1,
+                       sep_char     => $opt_c,
+                       always_quote => 1, } );
+
+           For detailed control of the stacking of individual closing tokens the following controls can be used:
+
+             -scp  or --stack-closing-paren
+             -schb or --stack-closing-hash-brace
+             -scsb or --stack-closing-square-bracket
+             -scbb or --stack-closing-block-brace
+
+           The flag -\b-s\bsc\bct\bt is an abbreviation for stacking the non-block closing tokens, -\b-s\bsc\bcp\bp -\b-s\bsc\bch\bhb\bb -\b-s\bsc\bcs\bsb\bb.
+
+           Stacking of closing block braces, -\b-s\bsc\bcb\bbb\bb, causes a cascade of isolated closing block braces to be combined
+           into a single line as in the following example:
+
+               # -scbb:
+               for $w1 (@w1) {
+                   for $w2 (@w2) {
+                       for $w3 (@w3) {
+                           for $w4 (@w4) {
+                               push( @lines, "$w1 $w2 $w3 $w4\n" );
+                           } } } }
+
+           To simplify input even further for the case in which both opening and closing non-block containers are
+           stacked, the flag -\b-s\bsa\bac\bc or -\b--\b-s\bst\bta\bac\bck\bk-\b-a\bal\bll\bl-\b-c\bco\bon\bnt\bta\bai\bin\bne\ber\brs\bs is an abbreviation for -\b-s\bso\bot\bt -\b-s\bsc\bct\bt.
+
+           Please note that if both opening and closing tokens are to be stacked, then the newer flag
+           -\b-w\bwe\bel\bld\bd-\b-n\bne\bes\bst\bte\bed\bd-\b-c\bco\bon\bnt\bta\bai\bin\bne\ber\brs\bs may be preferable because it insures that stacking is always done symmetrically.  It
+           also removes an extra level of unnecessary indentation within welded containers.  It is able to do this
+           because it works on formatting globally rather than locally, as the -\b-s\bso\bot\bt and -\b-s\bsc\bct\bt flags do.
+
+       -\b-d\bdn\bnl\bl,  -\b--\b-d\bde\bel\ble\bet\bte\be-\b-o\bol\bld\bd-\b-n\bne\bew\bwl\bli\bin\bne\bes\bs
+           By default, perltidy first deletes all old line break locations, and then it looks for good break points to
+           match the desired line length.  Use -\b-n\bnd\bdn\bnl\bl or  -\b--\b-n\bno\bod\bde\bel\ble\bet\bte\be-\b-o\bol\bld\bd-\b-n\bne\bew\bwl\bli\bin\bne\bes\bs to force perltidy to retain all old
+           line break points.
+
+       -\b-a\ban\bnl\bl,  -\b--\b-a\bad\bdd\bd-\b-n\bne\bew\bwl\bli\bin\bne\bes\bs
+           By default, perltidy will add line breaks when necessary to create continuations of long lines and to
+           improve the script appearance.  Use -\b-n\bna\ban\bnl\bl or -\b--\b-n\bno\boa\bad\bdd\bd-\b-n\bne\bew\bwl\bli\bin\bne\bes\bs to prevent any new line breaks.
+
+           This flag does not prevent perltidy from eliminating existing line breaks; see -\b--\b-f\bfr\bre\bee\bez\bze\be-\b-n\bne\bew\bwl\bli\bin\bne\bes\bs to
+           completely prevent changes to line break points.
+
+       C\bCo\bon\bnt\btr\bro\bol\bll\bli\bin\bng\bg w\bwh\bhe\bet\bth\bhe\ber\br p\bpe\ber\brl\blt\bti\bid\bdy\by b\bbr\bre\bea\bak\bks\bs b\bbe\bef\bfo\bor\bre\be o\bor\br a\baf\bft\bte\ber\br o\bop\bpe\ber\bra\bat\bto\bor\brs\bs
+           Four command line parameters provide some control over whether a line break should be before or after
+           specific token types.  Two parameters give detailed control:
+
+           -\b-w\bwb\bba\ba=\b=s\bs or -\b--\b-w\bwa\ban\bnt\bt-\b-b\bbr\bre\bea\bak\bk-\b-a\baf\bft\bte\ber\br=\b=s\bs, and
+
+           -\b-w\bwb\bbb\bb=\b=s\bs or -\b--\b-w\bwa\ban\bnt\bt-\b-b\bbr\bre\bea\bak\bk-\b-b\bbe\bef\bfo\bor\bre\be=\b=s\bs.
+
+           These parameters are each followed by a quoted string, s\bs, containing a list of token types (separated only
+           by spaces).  No more than one of each of these parameters should be specified, because repeating a command-
+           line parameter always overwrites the previous one before perltidy ever sees it.
+
+           By default, perltidy breaks a\baf\bft\bte\ber\br these token types:
+             % + - * / x != == >= <= =~ !~ < >  | &
+             = **= += *= &= <<= &&= -= /= |= >>= ||= //= .= %= ^= x=
+
+           And perltidy breaks b\bbe\bef\bfo\bor\bre\be these token types by default:
+             . << >> -> && || //
+
+           To illustrate, to cause a break after a concatenation operator, '.', rather than before it, the command line
+           would be
+
+             -wba="."
+
+           As another example, the following command would cause a break before math operators '+', '-', '/', and '*':
+
+             -wbb="+ - / *"
+
+           These commands should work well for most of the token types that perltidy uses (use -\b--\b-d\bdu\bum\bmp\bp-\b-t\bto\bok\bke\ben\bn-\b-t\bty\byp\bpe\bes\bs for a
+           list).  Also try the -\b-D\bD flag on a short snippet of code and look at the .DEBUG file to see the tokenization.
+           However, for a few token types there may be conflicts with hardwired logic which cause unexpected results.
+           One example is curly braces, which should be controlled with the parameter b\bbl\bl provided for that purpose.
+
+           W\bWA\bAR\bRN\bNI\bIN\bNG\bG Be sure to put these tokens in quotes to avoid having them misinterpreted by your command shell.
+
+           Two additional parameters are available which, though they provide no further capability, can simplify input
+           are:
+
+           -\b-b\bba\baa\bao\bo or -\b--\b-b\bbr\bre\bea\bak\bk-\b-a\baf\bft\bte\ber\br-\b-a\bal\bll\bl-\b-o\bop\bpe\ber\bra\bat\bto\bor\brs\bs,
+
+           -\b-b\bbb\bba\bao\bo or -\b--\b-b\bbr\bre\bea\bak\bk-\b-b\bbe\bef\bfo\bor\bre\be-\b-a\bal\bll\bl-\b-o\bop\bpe\ber\bra\bat\bto\bor\brs\bs.
+
+           The -baao sets the default to be to break after all of the following operators:
+
+               % + - * / x != == >= <= =~ !~ < > | &
+               = **= += *= &= <<= &&= -= /= |= >>= ||= //= .= %= ^= x=
+               . : ? && || and or err xor
+
+           and the -\b-b\bbb\bba\bao\bo flag sets the default to break before all of these operators.  These can be used to define an
+           initial break preference which can be fine-tuned with the -\b-w\bwb\bba\ba and -\b-w\bwb\bbb\bb flags.  For example, to break before
+           all operators except an =\b= one could use --bbao -wba='=' rather than listing every single perl operator
+           except =\b= on a -wbb flag.
+
+   C\bCo\bon\bnt\btr\bro\bol\bll\bli\bin\bng\bg L\bLi\bis\bst\bt F\bFo\bor\brm\bma\bat\btt\bti\bin\bng\bg
+       Perltidy attempts to format lists of comma-separated values in tables which look good.  Its default algorithms
+       usually work well, but sometimes they don't.  In this case, there are several methods available to control list
+       formatting.
+
+       A very simple way to prevent perltidy from changing the line breaks within a comma-separated list of values is
+       to insert a blank line, comment, or side-comment anywhere between the opening and closing parens (or braces or
+       brackets).   This causes perltidy to skip over its list formatting logic.  (The reason is that any of these
+       items put a constraint on line breaks, and perltidy needs complete control over line breaks within a container
+       to adjust a list layout).  For example, let us consider
+
+           my @list = (1,
+                       1, 1,
+                       1, 2, 1,
+                       1, 3, 3, 1,
+                       1, 4, 6, 4, 1,);
+
+       The default formatting, which allows a maximum line length of 80, will flatten this down to one line:
+
+           # perltidy (default)
+           my @list = ( 1, 1, 1, 1, 2, 1, 1, 3, 3, 1, 1, 4, 6, 4, 1, );
+
+       This formatting loses important information.  If we place a side comment on one of the lines, for example, we
+       get the following result with with default formatting parameters:
+
+           my @list = (
+               1,    # a side comment, comment, or blank keeps list intact
+               1, 1,
+               1, 2, 1,
+               1, 3, 3, 1,
+               1, 4, 6, 4, 1,
+           );
+
+       We could achieve the same result with a blank line or full comment anywhere between the opening and closing
+       parens.
+
+       For another possibility see the -fs flag in "Skipping Selected Sections of Code".
+
+       -\b-b\bbo\boc\bc,  -\b--\b-b\bbr\bre\bea\bak\bk-\b-a\bat\bt-\b-o\bol\bld\bd-\b-c\bco\bom\bmm\bma\ba-\b-b\bbr\bre\bea\bak\bkp\bpo\boi\bin\bnt\bts\bs
+           The -\b-b\bbo\boc\bc flag is another way to prevent comma-separated lists from being reformatted.  Using -\b-b\bbo\boc\bc on the
+           above example, plus additional flags to retain the original style, yields
+
+               # perltidy -boc -lp -pt=2 -vt=1 -vtc=1
+               my @list = (1,
+                           1, 1,
+                           1, 2, 1,
+                           1, 3, 3, 1,
+                           1, 4, 6, 4, 1,);
+
+           A disadvantage of this flag is that all tables in the file must already be nicely formatted.
+
+       -\b-m\bmf\bft\bt=\b=n\bn,  -\b--\b-m\bma\bax\bxi\bim\bmu\bum\bm-\b-f\bfi\bie\bel\bld\bds\bs-\b-p\bpe\ber\br-\b-t\bta\bab\bbl\ble\be=\b=n\bn
+           If the computed number of fields for any table exceeds n\bn, then it will be reduced to n\bn.  The default value
+           for n\bn is a large number, 40.  While this value should probably be left unchanged as a general rule, it might
+           be used on a small section of code to force a list to have a particular number of fields per line, and then
+           either the -\b-b\bbo\boc\bc flag could be used to retain this formatting, or a single comment could be introduced
+           somewhere to freeze the formatting in future applications of perltidy.
+
+               # perltidy -mft=2
+               @month_of_year = (
+                   'Jan', 'Feb',
+                   'Mar', 'Apr',
+                   'May', 'Jun',
+                   'Jul', 'Aug',
+                   'Sep', 'Oct',
+                   'Nov', 'Dec'
+               );
+
+       -\b-c\bca\bab\bb=\b=n\bn,  -\b--\b-c\bco\bom\bmm\bma\ba-\b-a\bar\brr\bro\bow\bw-\b-b\bbr\bre\bea\bak\bkp\bpo\boi\bin\bnt\bts\bs=\b=n\bn
+           A comma which follows a comma arrow, '=>', is given special consideration.  In a long list, it is common to
+           break at all such commas.  This parameter can be used to control how perltidy breaks at these commas.
+           (However, it will have no effect if old comma breaks are being forced because -\b-b\bbo\boc\bc is used).  The possible
+           values of n\bn are:
+
+            n=0 break at all commas after =>
+            n=1 stable: break at all commas after => if container is open,
+                EXCEPT FOR one-line containers
+            n=2 break at all commas after =>, BUT try to form the maximum
+                one-line container lengths
+            n=3 do not treat commas after => specially at all
+            n=4 break everything: like n=0 but ALSO break a short container with
+                a => not followed by a comma when -vt=0 is used
+            n=5 stable: like n=1 but ALSO break at open one-line containers when
+                -vt=0 is used (default)
+
+           For example, given the following single line, perltidy by default will not add any line breaks because it
+           would break the existing one-line container:
+
+               bless { B => $B, Root => $Root } => $package;
+
+           Using -\b-c\bca\bab\bb=\b=0\b0 will force a break after each comma-arrow item:
+
+               # perltidy -cab=0:
+               bless {
+                   B    => $B,
+                   Root => $Root
+               } => $package;
+
+           If perltidy is subsequently run with this container broken, then by default it will break after each '=>'
+           because the container is now broken.  To reform a one-line container, the parameter -\b-c\bca\bab\bb=\b=2\b2 could be used.
+
+           The flag -\b-c\bca\bab\bb=\b=3\b3 can be used to prevent these commas from being treated specially.  In this case, an item
+           such as "01" => 31 is treated as a single item in a table.  The number of fields in this table will be
+           determined by the same rules that are used for any other table.  Here is an example.
+
+               # perltidy -cab=3
+               my %last_day = (
+                   "01" => 31, "02" => 29, "03" => 31, "04" => 30,
+                   "05" => 31, "06" => 30, "07" => 31, "08" => 31,
+                   "09" => 30, "10" => 31, "11" => 30, "12" => 31
+               );
+
+   R\bRe\bet\bta\bai\bin\bni\bin\bng\bg o\bor\br I\bIg\bgn\bno\bor\bri\bin\bng\bg E\bEx\bxi\bis\bst\bti\bin\bng\bg L\bLi\bin\bne\be B\bBr\bre\bea\bak\bks\bs
+       Several additional parameters are available for controlling the extent to which line breaks in the input script
+       influence the output script.  In most cases, the default parameter values are set so that, if a choice is
+       possible, the output style follows the input style.  For example, if a short logical container is broken in the
+       input script, then the default behavior is for it to remain broken in the output script.
+
+       Most of the parameters in this section would only be required for a one-time conversion of a script from short
+       container lengths to longer container lengths.  The opposite effect, of converting long container lengths to
+       shorter lengths, can be obtained by temporarily using a short maximum line length.
+
+       -\b-b\bbo\bol\bl,  -\b--\b-b\bbr\bre\bea\bak\bk-\b-a\bat\bt-\b-o\bol\bld\bd-\b-l\blo\bog\bgi\bic\bca\bal\bl-\b-b\bbr\bre\bea\bak\bkp\bpo\boi\bin\bnt\bts\bs
+           By default, if a logical expression is broken at a "&&", "||", "and", or "or", then the container will
+           remain broken.  Also, breaks at internal keywords "if" and "unless" will normally be retained.  To prevent
+           this, and thus form longer lines, use -\b-n\bnb\bbo\bol\bl.
+
+           Please note that this flag does not duplicate old logical breakpoints.  They are merely used as a hint with
+           this flag that a statement should remain broken.  Without this flag, perltidy will normally try to combine
+           relatively short expressions into a single line.
+
+           For example, given this snippet:
+
+               return unless $cmd = $cmd || ($dot
+                   && $Last_Shell) || &prompt('|');
+
+               # perltidy -bol [default]
+               return
+                 unless $cmd = $cmd
+                 || ( $dot
+                   && $Last_Shell )
+                 || &prompt('|');
+
+               # perltidy -nbol
+               return unless $cmd = $cmd || ( $dot && $Last_Shell ) || &prompt('|');
+
+       -\b-b\bbo\bom\bm,  -\b--\b-b\bbr\bre\bea\bak\bk-\b-a\bat\bt-\b-o\bol\bld\bd-\b-m\bme\bet\bth\bho\bod\bd-\b-b\bbr\bre\bea\bak\bkp\bpo\boi\bin\bnt\bts\bs
+           By default, a method call arrow "->" is considered a candidate for a breakpoint, but method chains will fill
+           to the line width before a break is considered.  With -\b-b\bbo\bom\bm, breaks before the arrow are preserved, so if you
+           have preformatted a method chain:
+
+             my $q = $rs
+               ->related_resultset('CDs')
+               ->related_resultset('Tracks')
+               ->search({
+                 'track.id' => {-ident => 'none_search.id'},
+               })->as_query;
+
+           It will k\bke\bee\bep\bp these breaks, rather than become this:
+
+             my $q = $rs->related_resultset('CDs')->related_resultset('Tracks')->search({
+                 'track.id' => {-ident => 'none_search.id'},
+               })->as_query;
+
+           This flag will also look for and keep a 'cuddled' style of calls, in which lines begin with a closing paren
+           followed by a call arrow, as in this example:
+
+             # perltidy -bom -wn
+             my $q = $rs->related_resultset(
+                 'CDs'
+             )->related_resultset(
+                 'Tracks'
+             )->search( {
+                 'track.id' => { -ident => 'none_search.id' },
+             } )->as_query;
+
+           You may want to include the -\b-w\bwe\bel\bld\bd-\b-n\bne\bes\bst\bte\bed\bd-\b-c\bco\bon\bnt\bta\bai\bin\bne\ber\brs\bs flag in this case to keep nested braces and parens
+           together, as in the last line.
+
+       -\b-b\bbo\bos\bs,  -\b--\b-b\bbr\bre\bea\bak\bk-\b-a\bat\bt-\b-o\bol\bld\bd-\b-s\bse\bem\bmi\bic\bco\bol\blo\bon\bn-\b-b\bbr\bre\bea\bak\bkp\bpo\boi\bin\bnt\bts\bs
+           Semicolons are normally placed at the end of a statement.  This means that formatted lines do not normally
+           begin with semicolons.  If the input stream has some lines which begin with semicolons, these can be
+           retained by setting this flag.  For example, consider the following two-line input snippet:
+
+             $z = sqrt($x**2 + $y**2)
+             ;
+
+           The default formatting will be:
+
+             $z = sqrt( $x**2 + $y**2 );
+
+           The result using p\bpe\ber\brl\blt\bti\bid\bdy\by -\b-b\bbo\bos\bs keeps the isolated semicolon:
+
+             $z = sqrt( $x**2 + $y**2 )
+               ;
+
+           The default is not to do this, -\b-n\bnb\bbo\bos\bs.
+
+       -\b-b\bbo\bok\bk,  -\b--\b-b\bbr\bre\bea\bak\bk-\b-a\bat\bt-\b-o\bol\bld\bd-\b-k\bke\bey\byw\bwo\bor\brd\bd-\b-b\bbr\bre\bea\bak\bkp\bpo\boi\bin\bnt\bts\bs
+           By default, perltidy will retain a breakpoint before keywords which may return lists, such as "sort" and
+           <map>.  This allows chains of these operators to be displayed one per line.  Use -\b-n\bnb\bbo\bok\bk to prevent retaining
+           these breakpoints.
+
+       -\b-b\bbo\bot\bt,  -\b--\b-b\bbr\bre\bea\bak\bk-\b-a\bat\bt-\b-o\bol\bld\bd-\b-t\bte\ber\brn\bna\bar\bry\by-\b-b\bbr\bre\bea\bak\bkp\bpo\boi\bin\bnt\bts\bs
+           By default, if a conditional (ternary) operator is broken at a ":", then it will remain broken.  To prevent
+           this, and thereby form longer lines, use -\b-n\bnb\bbo\bot\bt.
+
+       -\b-b\bbo\boa\ba,  -\b--\b-b\bbr\bre\bea\bak\bk-\b-a\bat\bt-\b-o\bol\bld\bd-\b-a\bat\btt\btr\bri\bib\bbu\but\bte\be-\b-b\bbr\bre\bea\bak\bkp\bpo\boi\bin\bnt\bts\bs
+           By default, if an attribute list is broken at a ":" in the source file, then it will remain broken.  For
+           example, given the following code, the line breaks at the ':'s will be retained:
+
+                               my @field
+                                 : field
+                                 : Default(1)
+                                 : Get('Name' => 'foo') : Set('Name');
+
+           If the attributes are on a single line in the source code then they will remain on a single line if
+           possible.
+
+           To prevent this, and thereby always form longer lines, use -\b-n\bnb\bbo\boa\ba.
+
+       K\bKe\bee\bep\bpi\bin\bng\bg o\bol\bld\bd b\bbr\bre\bea\bak\bkp\bpo\boi\bin\bnt\bts\bs a\bat\bt s\bsp\bpe\bec\bci\bif\bfi\bic\bc t\bto\bok\bke\ben\bn t\bty\byp\bpe\bes\bs
+           Two command line parameters provide detailed control over whether perltidy should keep an old line break
+           before or after a specific token type:
+
+           -\b-k\bkb\bbb\bb=\b=s\bs or -\b--\b-k\bke\bee\bep\bp-\b-o\bol\bld\bd-\b-b\bbr\bre\bea\bak\bkp\bpo\boi\bin\bnt\bts\bs-\b-b\bbe\bef\bfo\bor\bre\be=\b=s\bs, and
+
+           -\b-k\bkb\bba\ba=\b=s\bs or -\b--\b-k\bke\bee\bep\bp-\b-o\bol\bld\bd-\b-b\bbr\bre\bea\bak\bkp\bpo\boi\bin\bnt\bts\bs-\b-a\baf\bft\bte\ber\br=\b=s\bs
+
+           These parameters are each followed by a quoted string, s\bs, containing a list of token types (separated only
+           by spaces).  No more than one of each of these parameters should be specified, because repeating a command-
+           line parameter always overwrites the previous one before perltidy ever sees it.
+
+           For example, -kbb='=>' means that if an input line begins with a '=>' then the output script should also
+           have a line break before that token.
+
+           For example, given the script:
+
+               method 'foo'
+                 => [ Int, Int ]
+                 => sub {
+                   my ( $self, $x, $y ) = ( shift, @_ );
+                   ...;
+                 };
+
+               # perltidy [default]
+               method 'foo' => [ Int, Int ] => sub {
+                   my ( $self, $x, $y ) = ( shift, @_ );
+                   ...;
+               };
+
+               # perltidy -kbb='=>'
+               method 'foo'
+                 => [ Int, Int ]
+                 => sub {
+                   my ( $self, $x, $y ) = ( shift, @_ );
+                   ...;
+                 };
+
+       -\b-i\bio\bob\bb,  -\b--\b-i\big\bgn\bno\bor\bre\be-\b-o\bol\bld\bd-\b-b\bbr\bre\bea\bak\bkp\bpo\boi\bin\bnt\bts\bs
+           Use this flag to tell perltidy to ignore existing line breaks to the maximum extent possible.  This will
+           tend to produce the longest possible containers, regardless of type, which do not exceed the line length
+           limit. But please note that this parameter has priority over all other parameters requesting that certain
+           old breakpoints be kept.
+
+       -\b-k\bki\bis\bs,  -\b--\b-k\bke\bee\bep\bp-\b-i\bin\bnt\bte\ber\bri\bio\bor\br-\b-s\bse\bem\bmi\bic\bco\bol\blo\bon\bns\bs
+           Use the -\b-k\bki\bis\bs flag to prevent breaking at a semicolon if there was no break there in the input file.
+           Normally perltidy places a newline after each semicolon which terminates a statement unless several
+           statements are contained within a one-line brace block.  To illustrate, consider the following input lines:
+
+               dbmclose(%verb_delim); undef %verb_delim;
+               dbmclose(%expanded); undef %expanded;
+
+           The default is to break after each statement, giving
+
+               dbmclose(%verb_delim);
+               undef %verb_delim;
+               dbmclose(%expanded);
+               undef %expanded;
+
+           With p\bpe\ber\brl\blt\bti\bid\bdy\by -\b-k\bki\bis\bs the multiple statements are retained:
+
+               dbmclose(%verb_delim); undef %verb_delim;
+               dbmclose(%expanded);   undef %expanded;
+
+           The statements are still subject to the specified value of m\bma\bax\bxi\bim\bmu\bum\bm-\b-l\bli\bin\bne\be-\b-l\ble\ben\bng\bgt\bth\bh and will be broken if this
+           maximum is exceeded.
+
+   B\bBl\bla\ban\bnk\bk L\bLi\bin\bne\be C\bCo\bon\bnt\btr\bro\bol\bl
+       Blank lines can improve the readability of a script if they are carefully placed.  Perltidy has several commands
+       for controlling the insertion, retention, and removal of blank lines.
+
+       -\b-f\bfb\bbl\bl,  -\b--\b-f\bfr\bre\bee\bez\bze\be-\b-b\bbl\bla\ban\bnk\bk-\b-l\bli\bin\bne\bes\bs
+           Set -\b-f\bfb\bbl\bl if you want to the blank lines in your script to remain exactly as they are.  The rest of the
+           parameters in this section may then be ignored.  (Note: setting the -\b-f\bfb\bbl\bl flag is equivalent to setting
+           -\b-m\bmb\bbl\bl=\b=0\b0 and -\b-k\bkb\bbl\bl=\b=2\b2).
+
+       -\b-b\bbb\bbc\bc,  -\b--\b-b\bbl\bla\ban\bnk\bks\bs-\b-b\bbe\bef\bfo\bor\bre\be-\b-c\bco\bom\bmm\bme\ben\bnt\bts\bs
+           A blank line will be introduced before a full-line comment.  This is the default.  Use -\b-n\bnb\bbb\bbc\bc or
+           -\b--\b-n\bno\bob\bbl\bla\ban\bnk\bks\bs-\b-b\bbe\bef\bfo\bor\bre\be-\b-c\bco\bom\bmm\bme\ben\bnt\bts\bs to prevent such blank lines from being introduced.
+
+       -\b-b\bbl\blb\bbs\bs=\b=n\bn,  -\b--\b-b\bbl\bla\ban\bnk\bk-\b-l\bli\bin\bne\bes\bs-\b-b\bbe\bef\bfo\bor\bre\be-\b-s\bsu\bub\bbs\bs=\b=n\bn
+           The parameter -\b-b\bbl\blb\bbs\bs=\b=n\bn requests that least n\bn blank lines precede a sub definition which does not follow a
+           comment and which is more than one-line long.  The default is <-blbs=1>.  B\bBE\bEG\bGI\bIN\bN and E\bEN\bND\bD blocks are included.
+
+           The requested number of blanks statement will be inserted regardless of the value of
+           -\b--\b-m\bma\bax\bxi\bim\bmu\bum\bm-\b-c\bco\bon\bns\bse\bec\bcu\but\bti\biv\bve\be-\b-b\bbl\bla\ban\bnk\bk-\b-l\bli\bin\bne\bes\bs=\b=n\bn (-\b-m\bmb\bbl\bl=\b=n\bn) with the exception that if -\b-m\bmb\bbl\bl=\b=0\b0 then no blanks will be
+           output.
+
+           This parameter interacts with the value k\bk of the parameter -\b--\b-m\bma\bax\bxi\bim\bmu\bum\bm-\b-c\bco\bon\bns\bse\bec\bcu\but\bti\biv\bve\be-\b-b\bbl\bla\ban\bnk\bk-\b-l\bli\bin\bne\bes\bs=\b=k\bk (-\b-m\bmb\bbl\bl=\b=k\bk) as
+           follows:
+
+           1. If -\b-m\bmb\bbl\bl=\b=0\b0 then no blanks will be output.  This allows all blanks to be suppressed with a single
+           parameter.  Otherwise,
+
+           2. If the number of old blank lines in the script is less than n\bn then additional blanks will be inserted to
+           make the total n\bn regardless of the value of -\b-m\bmb\bbl\bl=\b=k\bk.
+
+           3. If the number of old blank lines in the script equals or exceeds n\bn then this parameter has no effect,
+           however the total will not exceed value specified on the -\b-m\bmb\bbl\bl=\b=k\bk flag.
+
+       -\b-b\bbl\blb\bbp\bp=\b=n\bn,  -\b--\b-b\bbl\bla\ban\bnk\bk-\b-l\bli\bin\bne\bes\bs-\b-b\bbe\bef\bfo\bor\bre\be-\b-p\bpa\bac\bck\bka\bag\bge\bes\bs=\b=n\bn
+           The parameter -\b-b\bbl\blb\bbp\bp=\b=n\bn requests that least n\bn blank lines precede a package which does not follow a comment.
+           The default is -\b-b\bbl\blb\bbp\bp=\b=1\b1.
+
+           This parameter interacts with the value k\bk of the parameter -\b--\b-m\bma\bax\bxi\bim\bmu\bum\bm-\b-c\bco\bon\bns\bse\bec\bcu\but\bti\biv\bve\be-\b-b\bbl\bla\ban\bnk\bk-\b-l\bli\bin\bne\bes\bs=\b=k\bk (-\b-m\bmb\bbl\bl=\b=k\bk) in
+           the same way as described for the previous item -\b-b\bbl\blb\bbs\bs=\b=n\bn.
+
+       -\b-b\bbb\bbs\bs,  -\b--\b-b\bbl\bla\ban\bnk\bks\bs-\b-b\bbe\bef\bfo\bor\bre\be-\b-s\bsu\bub\bbs\bs
+           For compatibility with previous versions, -\b-b\bbb\bbs\bs or -\b--\b-b\bbl\bla\ban\bnk\bks\bs-\b-b\bbe\bef\bfo\bor\bre\be-\b-s\bsu\bub\bbs\bs is equivalent to _\b-_\bb_\bl_\bb_\bp_\b=_\b1 and _\b-_\bb_\bl_\bb_\bs_\b=_\b1.
+
+           Likewise, -\b-n\bnb\bbb\bbs\bs or -\b--\b-n\bno\bob\bbl\bla\ban\bnk\bks\bs-\b-b\bbe\bef\bfo\bor\bre\be-\b-s\bsu\bub\bbs\bs is equivalent to _\b-_\bb_\bl_\bb_\bp_\b=_\b0 and _\b-_\bb_\bl_\bb_\bs_\b=_\b0.
+
+       -\b-b\bbb\bbb\bb,  -\b--\b-b\bbl\bla\ban\bnk\bks\bs-\b-b\bbe\bef\bfo\bor\bre\be-\b-b\bbl\blo\boc\bck\bks\bs
+           A blank line will be introduced before blocks of coding delimited by f\bfo\bor\br, f\bfo\bor\bre\bea\bac\bch\bh, w\bwh\bhi\bil\ble\be, u\bun\bnt\bti\bil\bl, and i\bif\bf,
+           u\bun\bnl\ble\bes\bss\bs, in the following circumstances:
+
+           +\bo   The block is not preceded by a comment.
+
+           +\bo   The block is not a one-line block.
+
+           +\bo   The number of consecutive non-blank lines at the current indentation depth is at least -\b-l\blb\bbl\bl (see next
+               section).
+
+           This is the default.  The intention of this option is to introduce some space within dense coding.  This is
+           negated with -\b-n\bnb\bbb\bbb\bb or  -\b--\b-n\bno\bob\bbl\bla\ban\bnk\bks\bs-\b-b\bbe\bef\bfo\bor\bre\be-\b-b\bbl\blo\boc\bck\bks\bs.
+
+       -\b-l\blb\bbl\bl=\b=n\bn -\b--\b-l\blo\bon\bng\bg-\b-b\bbl\blo\boc\bck\bk-\b-l\bli\bin\bne\be-\b-c\bco\bou\bun\bnt\bt=\b=n\bn
+           This controls how often perltidy is allowed to add blank lines before certain block types (see previous
+           section).  The default is 8.  Entering a value of 0\b0 is equivalent to entering a very large number.
+
+       -\b-b\bbl\bla\bao\bo=\b=i\bi or -\b--\b-b\bbl\bla\ban\bnk\bk-\b-l\bli\bin\bne\bes\bs-\b-a\baf\bft\bte\ber\br-\b-o\bop\bpe\ben\bni\bin\bng\bg-\b-b\bbl\blo\boc\bck\bk=\b=i\bi
+           This control places a minimum of i\bi blank lines a\baf\bft\bte\ber\br a line which e\ben\bnd\bds\bs with an opening block brace of a
+           specified type.  By default, this only applies to the block of a named s\bsu\bub\bb, but this can be changed (see
+           -\b-b\bbl\bla\bao\bol\bl below).  The default is not to do this (i\bi=\b=0\b0).
+
+           Please see the note below on using the -\b-b\bbl\bla\bao\bo and -\b-b\bbl\blb\bbc\bc options.
+
+       -\b-b\bbl\blb\bbc\bc=\b=i\bi or -\b--\b-b\bbl\bla\ban\bnk\bk-\b-l\bli\bin\bne\bes\bs-\b-b\bbe\bef\bfo\bor\bre\be-\b-c\bcl\blo\bos\bsi\bin\bng\bg-\b-b\bbl\blo\boc\bck\bk=\b=i\bi
+           This control places a minimum of i\bi blank lines b\bbe\bef\bfo\bor\bre\be a line which b\bbe\beg\bgi\bin\bns\bs with a closing block brace of a
+           specified type.  By default, this only applies to the block of a named s\bsu\bub\bb, but this can be changed (see
+           -\b-b\bbl\blb\bbc\bcl\bl below).  The default is not to do this (i\bi=\b=0\b0).
+
+       -\b-b\bbl\bla\bao\bol\bl=\b=s\bs or -\b--\b-b\bbl\bla\ban\bnk\bk-\b-l\bli\bin\bne\bes\bs-\b-a\baf\bft\bte\ber\br-\b-o\bop\bpe\ben\bni\bin\bng\bg-\b-b\bbl\blo\boc\bck\bk-\b-l\bli\bis\bst\bt=\b=s\bs
+           The parameter s\bs is a list of block type keywords to which the flag -\b-b\bbl\bla\bao\bo should apply.  The section
+           "Specifying Block Types" explains how to list block types.
+
+       -\b-b\bbl\blb\bbc\bcl\bl=\b=s\bs or -\b--\b-b\bbl\bla\ban\bnk\bk-\b-l\bli\bin\bne\bes\bs-\b-b\bbe\bef\bfo\bor\bre\be-\b-c\bcl\blo\bos\bsi\bin\bng\bg-\b-b\bbl\blo\boc\bck\bk-\b-l\bli\bis\bst\bt=\b=s\bs
+           This parameter is a list of block type keywords to which the flag -\b-b\bbl\blb\bbc\bc should apply.  The section
+           "Specifying Block Types" explains how to list block types.
+
+       N\bNo\bot\bte\be o\bon\bn u\bus\bsi\bin\bng\bg t\bth\bhe\be -\b-b\bbl\bla\bao\bo and -\b-b\bbl\blb\bbc\bc options.
+           These blank line controls introduce a certain minimum number of blank lines in the text, but the final
+           number of blank lines may be greater, depending on values of the other blank line controls and the number of
+           old blank lines.  A consequence is that introducing blank lines with these and other controls cannot be
+           exactly undone, so some experimentation with these controls is recommended before using them.
+
+           For example, suppose that for some reason we decide to introduce one blank space at the beginning and ending
+           of all blocks.  We could do this using
+
+             perltidy -blao=2 -blbc=2 -blaol='*' -blbcl='*' filename
+
+           Now suppose the script continues to be developed, but at some later date we decide we don't want these
+           spaces after all. We might expect that running with the flags -\b-b\bbl\bla\bao\bo=\b=0\b0 and -\b-b\bbl\blb\bbc\bc=\b=0\b0 will undo them.  However,
+           by default perltidy retains single blank lines, so the blank lines remain.
+
+           We can easily fix this by telling perltidy to ignore old blank lines by including the added parameter -\b-k\bkb\bbl\bl=\b=0\b0
+           and rerunning. Then the unwanted blank lines will be gone.  However, this will cause all old blank lines to
+           be ignored, perhaps even some that were added by hand to improve formatting. So please be cautious when
+           using these parameters.
+
+       -\b-m\bmb\bbl\bl=\b=n\bn -\b--\b-m\bma\bax\bxi\bim\bmu\bum\bm-\b-c\bco\bon\bns\bse\bec\bcu\but\bti\biv\bve\be-\b-b\bbl\bla\ban\bnk\bk-\b-l\bli\bin\bne\bes\bs=\b=n\bn
+           This parameter specifies the maximum number of consecutive blank lines which will be output within code
+           sections of a script.  The default is n=1.  If the input file has more than n consecutive blank lines, the
+           number will be reduced to n except as noted above for the -\b-b\bbl\blb\bbp\bp and -\b-b\bbl\blb\bbs\bs parameters.  If n\bn=\b=0\b0 then no blank
+           lines will be output (unless all old blank lines are retained with the -\b-k\bkb\bbl\bl=\b=2\b2 flag of the next section).
+
+           This flag obviously does not apply to pod sections, here-documents, and quotes.
+
+       -\b-k\bkb\bbl\bl=\b=n\bn,  -\b--\b-k\bke\bee\bep\bp-\b-o\bol\bld\bd-\b-b\bbl\bla\ban\bnk\bk-\b-l\bli\bin\bne\bes\bs=\b=n\bn
+           The -\b-k\bkb\bbl\bl=\b=n\bn flag gives you control over how your existing blank lines are treated.
+
+           The possible values of n\bn are:
+
+            n=0 ignore all old blank lines
+            n=1 stable: keep old blanks, but limited by the value of the B<-mbl=n> flag
+            n=2 keep all old blank lines, regardless of the value of the B<-mbl=n> flag
+
+           The default is n\bn=\b=1\b1.
+
+       -\b-s\bso\bob\bb,  -\b--\b-s\bsw\bwa\bal\bll\blo\bow\bw-\b-o\bop\bpt\bti\bio\bon\bna\bal\bl-\b-b\bbl\bla\ban\bnk\bk-\b-l\bli\bin\bne\bes\bs
+           This is equivalent to k\bkb\bbl\bl=\b=0\b0 and is included for compatibility with previous versions.
+
+       -\b-n\bns\bso\bob\bb,  -\b--\b-n\bno\bos\bsw\bwa\bal\bll\blo\bow\bw-\b-o\bop\bpt\bti\bio\bon\bna\bal\bl-\b-b\bbl\bla\ban\bnk\bk-\b-l\bli\bin\bne\bes\bs
+           This is equivalent to k\bkb\bbl\bl=\b=1\b1 and is included for compatibility with previous versions.
+
+       C\bCo\bon\bnt\btr\bro\bol\bls\bs f\bfo\bor\br b\bbl\bla\ban\bnk\bk l\bli\bin\bne\bes\bs a\bar\bro\bou\bun\bnd\bd l\bli\bin\bne\bes\bs o\bof\bf c\bco\bon\bns\bse\bec\bcu\but\bti\biv\bve\be k\bke\bey\byw\bwo\bor\brd\bds\bs
+
+       The parameters in this section provide some control over the placement of blank lines within and around groups
+       of statements beginning with selected keywords.  These blank lines are called here k\bke\bey\byw\bwo\bor\brd\bd g\bgr\bro\bou\bup\bp b\bbl\bla\ban\bnk\bks\bs, and all
+       of the parameters begin with -\b--\b-k\bke\bey\byw\bwo\bor\brd\bd-\b-g\bgr\bro\bou\bup\bp-\b-b\bbl\bla\ban\bnk\bks\bs*\b*, or -\b-k\bkg\bgb\bb*\b* for short.  The default settings do not employ
+       these controls but they can be enabled with the following parameters:
+
+       -\b-k\bkg\bgb\bbl\bl=\b=s\bs or -\b--\b-k\bke\bey\byw\bwo\bor\brd\bd-\b-g\bgr\bro\bou\bup\bp-\b-b\bbl\bla\ban\bnk\bks\bs-\b-l\bli\bis\bst\bt=\b=s\bs; s\bs is a quoted string of keywords
+
+       -\b-k\bkg\bgb\bbs\bs=\b=s\bs or -\b--\b-k\bke\bey\byw\bwo\bor\brd\bd-\b-g\bgr\bro\bou\bup\bp-\b-b\bbl\bla\ban\bnk\bks\bs-\b-s\bsi\biz\bze\be=\b=s\bs; s\bs gives the number of keywords required to form a group.
+
+       -\b-k\bkg\bgb\bbb\bb=\b=n\bn or -\b--\b-k\bke\bey\byw\bwo\bor\brd\bd-\b-g\bgr\bro\bou\bup\bp-\b-b\bbl\bla\ban\bnk\bks\bs-\b-b\bbe\bef\bfo\bor\bre\be=\b=n\bn; n\bn = (0, 1, or 2) controls a leading blank
+
+       -\b-k\bkg\bgb\bba\ba=\b=n\bn or -\b--\b-k\bke\bey\byw\bwo\bor\brd\bd-\b-g\bgr\bro\bou\bup\bp-\b-b\bbl\bla\ban\bnk\bks\bs-\b-a\baf\bft\bte\ber\br=\b=n\bn; n\bn = (0, 1, or 2) controls a trailing blank
+
+       -\b-k\bkg\bgb\bbi\bi or -\b--\b-k\bke\bey\byw\bwo\bor\brd\bd-\b-g\bgr\bro\bou\bup\bp-\b-b\bbl\bla\ban\bnk\bks\bs-\b-i\bin\bns\bsi\bid\bde\be is a switch for adding blanks between subgroups
+
+       -\b-k\bkg\bgb\bbd\bd or -\b--\b-k\bke\bey\byw\bwo\bor\brd\bd-\b-g\bgr\bro\bou\bup\bp-\b-b\bbl\bla\ban\bnk\bks\bs-\b-d\bde\bel\ble\bet\bte\be is a switch for removing initial blank lines between keywords
+
+       -\b-k\bkg\bgb\bbr\br=\b=n\bn or -\b--\b-k\bke\bey\byw\bwo\bor\brd\bd-\b-g\bgr\bro\bou\bup\bp-\b-b\bbl\bla\ban\bnk\bks\bs-\b-r\bre\bep\bpe\bea\bat\bt-\b-c\bco\bou\bun\bnt\bt=\b=n\bn can limit the number of times this logic is applied
+
+       In addition, the following abbreviations are available to for simplified usage:
+
+       -\b-k\bkg\bgb\bb or -\b--\b-k\bke\bey\byw\bwo\bor\brd\bd-\b-g\bgr\bro\bou\bup\bp-\b-b\bbl\bla\ban\bnk\bks\bs is short for -\b-k\bkg\bgb\bbb\bb=\b=2\b2 -\b-k\bkg\bgb\bba\ba=\b=2\b2 k\bkg\bgb\bbi\bi
+
+       -\b-n\bnk\bkg\bgb\bb or -\b--\b-n\bno\bok\bke\bey\byw\bwo\bor\brd\bd-\b-g\bgr\bro\bou\bup\bp-\b-b\bbl\bla\ban\bnk\bks\bs, is short for -\b-k\bkg\bgb\bbb\bb=\b=1\b1 -\b-k\bkg\bgb\bba\ba=\b=1\b1 n\bnk\bkg\bgb\bbi\bi
+
+       Before describing the meaning of the parameters in detail let us look at an example which is formatted with
+       default parameter settings.
+
+               print "Entering test 2\n";
+               use Test;
+               use Encode qw(from_to encode decode
+                 encode_utf8 decode_utf8
+                 find_encoding is_utf8);
+               use charnames qw(greek);
+               my @encodings     = grep( /iso-?8859/, Encode::encodings() );
+               my @character_set = ( '0' .. '9', 'A' .. 'Z', 'a' .. 'z' );
+               my @source        = qw(ascii iso8859-1 cp1250);
+               my @destiny       = qw(cp1047 cp37 posix-bc);
+               my @ebcdic_sets   = qw(cp1047 cp37 posix-bc);
+               my $str           = join( '', map( chr($_), 0x20 .. 0x7E ) );
+               return unless ($str);
+
+       using p\bpe\ber\brl\blt\bti\bid\bdy\by -\b-k\bkg\bgb\bb gives:
+
+               print "Entering test 2\n";
+                                             <----------this blank controlled by -kgbb
+               use Test;
+               use Encode qw(from_to encode decode
+                 encode_utf8 decode_utf8
+                 find_encoding is_utf8);
+               use charnames qw(greek);
+                                             <---------this blank controlled by -kgbi
+               my @encodings     = grep( /iso-?8859/, Encode::encodings() );
+               my @character_set = ( '0' .. '9', 'A' .. 'Z', 'a' .. 'z' );
+               my @source        = qw(ascii iso8859-1 cp1250);
+               my @destiny       = qw(cp1047 cp37 posix-bc);
+               my @ebcdic_sets   = qw(cp1047 cp37 posix-bc);
+               my $str           = join( '', map( chr($_), 0x20 .. 0x7E ) );
+                                             <----------this blank controlled by -kgba
+               return unless ($str);
+
+       Blank lines have been introduced around the m\bmy\by and u\bus\bse\be sequences.  What happened is that the default keyword
+       list includes m\bmy\by and u\bus\bse\be but not p\bpr\bri\bin\bnt\bt and r\bre\bet\btu\bur\brn\bn.  So a continuous sequence of nine m\bmy\by and u\bus\bse\be statements was
+       located.  This number exceeds the default threshold of five, so blanks were placed before and after the entire
+       group.  Then, since there was also a subsequence of six m\bmy\by lines, a blank line was introduced to separate them.
+
+       Finer control over blank placement can be achieved by using the individual parameters rather than the -\b-k\bkg\bgb\bb flag.
+       The individual controls are as follows.
+
+       -\b-k\bkg\bgb\bbl\bl=\b=s\bs or -\b--\b-k\bke\bey\byw\bwo\bor\brd\bd-\b-g\bgr\bro\bou\bup\bp-\b-b\bbl\bla\ban\bnk\bks\bs-\b-l\bli\bis\bst\bt=\b=s\bs, where s\bs is a quoted string, defines the set of keywords which will be
+       formed into groups.  The string is a space separated list of keywords.  The default set is s\bs=\b="\b"u\bus\bse\be r\bre\beq\bqu\bui\bir\bre\be l\blo\boc\bca\bal\bl
+       o\bou\bur\br m\bmy\by"\b", but any list of keywords may be used. Comment lines may also be included in a keyword group, even
+       though they are not keywords.  To include ordinary block comments, include the symbol B\bBC\bC. To include static
+       block comments (which normally begin with '##'), include the symbol S\bSB\bBC\bC.
+
+       -\b-k\bkg\bgb\bbs\bs=\b=s\bs or -\b--\b-k\bke\bey\byw\bwo\bor\brd\bd-\b-g\bgr\bro\bou\bup\bp-\b-b\bbl\bla\ban\bnk\bks\bs-\b-s\bsi\biz\bze\be=\b=s\bs, where s\bs is a string describing the number of consecutive keyword
+       statements forming a group.  If s\bs is an integer then it is the minimum number required for a group.  A maximum
+       value may also be given with the format s\bs=\b=m\bmi\bin\bn.\b.m\bma\bax\bx, where m\bmi\bin\bn is the minimum number and m\bma\bax\bx is the maximum
+       number, and the min and max values are separated by one or more dots.  No groups will be found if the maximum is
+       less than the minimum.  The maximum is unlimited if not given.  The default is s\bs=\b=5\b5.  Some examples:
+
+           s      min   max         number for group
+           3      3     unlimited   3 or more
+           1.1    1     1           1
+           1..3   1     3           1 to 3
+           1.0    1     0           (no match)
+
+       -\b-k\bkg\bgb\bbb\bb=\b=n\bn or -\b--\b-k\bke\bey\byw\bwo\bor\brd\bd-\b-g\bgr\bro\bou\bup\bp-\b-b\bbl\bla\ban\bnk\bks\bs-\b-b\bbe\bef\bfo\bor\bre\be=\b=n\bn specifies whether a blank should appear before the first line of the
+       group, as follows:
+
+          n=0 => (delete) an existing blank line will be removed
+          n=1 => (stable) no change to the input file is made  [DEFAULT]
+          n=2 => (insert) a blank line is introduced if possible
+
+       -\b-k\bkg\bgb\bba\ba=\b=n\bn or -\b--\b-k\bke\bey\byw\bwo\bor\brd\bd-\b-g\bgr\bro\bou\bup\bp-\b-b\bbl\bla\ban\bnk\bks\bs-\b-a\baf\bft\bte\ber\br=\b=n\bn likewise specifies whether a blank should appear after the last line
+       of the group, using the same scheme (0=delete, 1=stable, 2=insert).
+
+       -\b-k\bkg\bgb\bbi\bi or -\b--\b-k\bke\bey\byw\bwo\bor\brd\bd-\b-g\bgr\bro\bou\bup\bp-\b-b\bbl\bla\ban\bnk\bks\bs-\b-i\bin\bns\bsi\bid\bde\be controls the insertion of blank lines between the first and last
+       statement of the entire group.  If there is a continuous run of a single statement type with more than the
+       minimum threshold number (as specified with -\b-k\bkg\bgb\bbs\bs=\b=s\bs) then this switch causes a blank line be inserted between
+       this subgroup and the others. In the example above this happened between the u\bus\bse\be and m\bmy\by statements.
+
+       -\b-k\bkg\bgb\bbd\bd or -\b--\b-k\bke\bey\byw\bwo\bor\brd\bd-\b-g\bgr\bro\bou\bup\bp-\b-b\bbl\bla\ban\bnk\bks\bs-\b-d\bde\bel\ble\bet\bte\be controls the deletion of any blank lines that exist in the the group when
+       it is first scanned.  When statements are initially scanned, any existing blank lines are included in the
+       collection.  Any such orignial blank lines will be deleted before any other insertions are made when the
+       parameter -\b-k\bkg\bgb\bbd\bd is set.  The default is not to do this, -\b-n\bnk\bkg\bgb\bbd\bd.
+
+       -\b-k\bkg\bgb\bbr\br=\b=n\bn or -\b--\b-k\bke\bey\byw\bwo\bor\brd\bd-\b-g\bgr\bro\bou\bup\bp-\b-b\bbl\bla\ban\bnk\bks\bs-\b-r\bre\bep\bpe\bea\bat\bt-\b-c\bco\bou\bun\bnt\bt=\b=n\bn specifies n\bn, the maximum number of times this logic will be
+       applied to any file.  The special value n\bn=\b=0\b0 is the same as n=infinity which means it will be applied to an
+       entire script [Default].  A value n\bn=\b=1\b1 could be used to make it apply just one time for example.  This might be
+       useful for adjusting just the u\bus\bse\be statements in the top part of a module for example.
+
+       -\b-k\bkg\bgb\bb or -\b--\b-k\bke\bey\byw\bwo\bor\brd\bd-\b-g\bgr\bro\bou\bup\bp-\b-b\bbl\bla\ban\bnk\bks\bs is an abbreviation equivalent to setting -\b-k\bkg\bgb\bbb\bb=\b=1\b1 -\b-k\bkg\bgb\bba\ba=\b=1\b1 -\b-k\bkg\bgb\bbi\bi.  This turns on
+       keyword group formatting with a set of default values.
+
+       -\b-n\bnk\bkg\bgb\bb or -\b--\b-n\bno\bok\bke\bey\byw\bwo\bor\brd\bd-\b-g\bgr\bro\bou\bup\bp-\b-b\bbl\bla\ban\bnk\bks\bs is equivalent to -\b-k\bkg\bgb\bbb\bb=\b=0\b0 -\b-k\bkg\bgb\bba\ba n\bnk\bkg\bgb\bbi\bi.  This flag turns off keyword group blank
+       lines and is the default setting.
+
+       Here are a few notes about the functioning of this technique.
+
+       +\bo   These parameters are probably more useful as part of a major code reformatting operation rather than as a
+           routine formatting operation.
+
+           In particular, note that deleting old blank lines with -\b-k\bkg\bgb\bbd\bd is an irreversible operation so it should be
+           applied with care.  Existing blank lines may be serving an important role in controlling vertical alignment.
+
+       +\bo   Conflicts which arise among these k\bkg\bgb\bb*\b* parameters and other blank line controls are generally resolved by
+           producing the maximum number of blank lines implied by any parameter.
+
+           For example, if the flags -\b--\b-f\bfr\bre\bee\bez\bze\be-\b-b\bbl\bla\ban\bnk\bk-\b-l\bli\bin\bne\bes\bs, or -\b--\b-k\bke\bee\bep\bp-\b-o\bol\bld\bd-\b-b\bbl\bla\ban\bnk\bk-\b-l\bli\bin\bne\bes\bs=\b=2\b2, are set, then they have
+           priority over any blank line deletion implied by the -\b-k\bkg\bgb\bb flags of this section, so no blank lines will be
+           deleted.
+
+           For another example, if a keyword group ends at a s\bsu\bub\bb and the flag k\bkg\bgb\bba\ba=\b=0\b0 requests no blank line there, but
+           we also have -\b--\b-b\bbl\bla\ban\bnk\bk-\b-l\bli\bin\bne\bes\bs-\b-b\bbe\bef\bfo\bor\bre\be-\b-s\bsu\bub\bbs\bs=\b=2\b2, then two blank lines will still be introduced before the sub.
+
+       +\bo   The introduction of blank lines does not occur if it would conflict with other input controls or code
+           validity. For example, a blank line will not be placed within a here-doc or within a section of code marked
+           with format skipping comments.  And in general, a blank line will only be introduced at the end of a group
+           if the next statement is a line of code.
+
+       +\bo   The count which is used to determine the group size is not the number of lines but rather the total number
+           of keywords which are found.  Individual statements with a certain leading keyword may continue on multiple
+           lines, but if any of these lines is nested more than one level deep then that group will be ended.
+
+       +\bo   The search for groups of lines with similar leading keywords is based on the input source, not the final
+           formatted source.  Consequently, if the source code is badly formatted, it would be best to make a first
+           formatting pass without these options.
+
+   S\bSt\bty\byl\ble\bes\bs
+       A style refers to a convenient collection of existing parameters.
+
+       -\b-g\bgn\bnu\bu, -\b--\b-g\bgn\bnu\bu-\b-s\bst\bty\byl\ble\be
+           -\b-g\bgn\bnu\bu gives an approximation to the GNU Coding Standards (which do not apply to perl) as they are sometimes
+           implemented.  At present, this style overrides the default style with the following parameters:
+
+               -lp -bl -noll -pt=2 -bt=2 -sbt=2 -icp
+
+       -\b-p\bpb\bbp\bp, -\b--\b-p\bpe\ber\brl\bl-\b-b\bbe\bes\bst\bt-\b-p\bpr\bra\bac\bct\bti\bic\bce\bes\bs
+           -\b-p\bpb\bbp\bp is an abbreviation for the parameters in the book P\bPe\ber\brl\bl B\bBe\bes\bst\bt P\bPr\bra\bac\bct\bti\bic\bce\bes\bs by Damian Conway:
+
+               -l=78 -i=4 -ci=4 -st -se -vt=2 -cti=0 -pt=1 -bt=1 -sbt=1 -bbt=1 -nsfs -nolq
+               -wbb="% + - * / x != == >= <= =~ !~ < > | & =
+                     **= += *= &= <<= &&= -= /= |= >>= ||= //= .= %= ^= x="
+
+           Please note that this parameter set includes -st and -se flags, which make perltidy act as a filter on one
+           file only.  These can be overridden by placing -\b-n\bns\bst\bt and/or -\b-n\bns\bse\be after the -pbp parameter.
+
+           Also note that the value of continuation indentation, -ci=4, is equal to the value of the full indentation,
+           -i=4.  It is recommended that the either (1) the parameter -\b-c\bci\bi=\b=2\b2 be used instead, or the flag -\b-x\bxc\bci\bi be set.
+           This will help show structure, particularly when there are ternary statements. The following snippet
+           illustrates these options.
+
+               # perltidy -pbp
+               $self->{_text} = (
+                    !$section        ? ''
+                   : $type eq 'item' ? "the $section entry"
+                   :                   "the section on $section"
+                   )
+                   . (
+                   $page
+                   ? ( $section ? ' in ' : '' ) . "the $page$page_ext manpage"
+                   : ' elsewhere in this document'
+                   );
+
+               # perltidy -pbp -ci=2
+               $self->{_text} = (
+                    !$section        ? ''
+                   : $type eq 'item' ? "the $section entry"
+                   :                   "the section on $section"
+                 )
+                 . (
+                   $page
+                   ? ( $section ? ' in ' : '' ) . "the $page$page_ext manpage"
+                   : ' elsewhere in this document'
+                 );
+
+               # perltidy -pbp -xci
+               $self->{_text} = (
+                    !$section        ? ''
+                   : $type eq 'item' ? "the $section entry"
+                   :                   "the section on $section"
+                   )
+                   . ( $page
+                       ? ( $section ? ' in ' : '' ) . "the $page$page_ext manpage"
+                       : ' elsewhere in this document'
+                   );
+
+           The -\b-x\bxc\bci\bi flag was developed after the -\b-p\bpb\bbp\bp parameters were published so you need to include it separately.
+
+       O\bOn\bne\be-\b-l\bli\bin\bne\be b\bbl\blo\boc\bck\bks\bs
+           There are a few points to note regarding one-line blocks.  A one-line block is something like this,
+
+           where the contents within the curly braces is short enough to fit on a single line.
+
+           With few exceptions, perltidy retains existing one-line blocks, if it is possible within the line-length
+           constraint, but it does not attempt to form new ones.  In other words, perltidy will try to follow the one-
+           line block style of the input file.
+
+           If an existing one-line block is longer than the maximum line length, however, it will be broken into
+           multiple lines.  When this happens, perltidy checks for and adds any optional terminating semicolon (unless
+           the -\b-n\bna\bas\bsc\bc option is used) if the block is a code block.
+
+           The main exception is that perltidy will attempt to form new one-line blocks following the keywords "map",
+           "eval", and "sort", because these code blocks are often small and most clearly displayed in a single line.
+
+           One-line block rules can conflict with the cuddled-else option.  When the cuddled-else option is used,
+           perltidy retains existing one-line blocks, even if they do not obey cuddled-else formatting.
+
+           Occasionally, when one-line blocks get broken because they exceed the available line length, the formatting
+           will violate the requested brace style.  If this happens, reformatting the script a second time should
+           correct the problem.
+
+           Sometimes it might be desirable to convert a script to have one-line blocks whenever possible.  Although
+           there is currently no flag for this, a simple workaround is to execute perltidy twice, once with the flag
+           -\b-n\bno\boa\bad\bdd\bd-\b-n\bne\bew\bwl\bli\bin\bne\bes\bs and then once again with normal parameters, like this:
+
+                cat infile | perltidy -nanl | perltidy >outfile
+
+           When executed on this snippet
+
+               if ( $? == -1 ) {
+                   die "failed to execute: $!\n";
+               }
+               if ( $? == -1 ) {
+                   print "Had enough.\n";
+                   die "failed to execute: $!\n";
+               }
+
+           the result is
+
+               if ( $? == -1 ) { die "failed to execute: $!\n"; }
+               if ( $? == -1 ) {
+                   print "Had enough.\n";
+                   die "failed to execute: $!\n";
+               }
+
+           This shows that blocks with a single statement become one-line blocks.
+
+       -\b-o\bol\blb\bbs\bs=\b=n\bn, -\b--\b-o\bon\bne\be-\b-l\bli\bin\bne\be-\b-b\bbl\blo\boc\bck\bk-\b-s\bse\bem\bmi\bic\bco\bol\blo\bon\bns\bs=\b=n\bn
+           This flag controls the placement of semicolons at the end of one-line blocks.  Semicolons are optional
+           before a closing block brace, and frequently they are omitted at the end of a one-line block containing just
+           a single statement.  By default, perltidy follows the input file regarding these semicolons, but this
+           behavior can be controlled by this flag.  The values of n are:
+
+             n=0 remove terminal semicolons in one-line blocks having a single statement
+             n=1 stable; keep input file placement of terminal semicolons [DEFAULT ]
+             n=2 add terminal semicolons in all one-line blocks
+
+           Note that the n\bn=\b=2\b2 option has no effect if adding semicolons is prohibited with the -\b-n\bna\bas\bsc\bc flag.  Also not
+           that while n\bn=\b=2\b2 adds missing semicolons to all one-line blocks, regardless of complexity, the n\bn=\b=0\b0 option only
+           removes ending semicolons which terminate one-line blocks containing just one semicolon.  So these two
+           options are not exact inverses.
+
+       -\b-o\bol\blb\bbn\bn=\b=n\bn, -\b--\b-o\bon\bne\be-\b-l\bli\bin\bne\be-\b-b\bbl\blo\boc\bck\bk-\b-n\bne\bes\bst\bti\bin\bng\bg=\b=n\bn
+           Nested one-line blocks are lines with code blocks which themselves contain code blocks.  For example, the
+           following line is a nested one-line block.
+
+                    foreach (@list) { if ($_ eq $asked_for) { last } ++$found }
+
+           The default behavior is to break such lines into multiple lines, but this behavior can be controlled with
+           this flag.  The values of n are:
+
+             n=0 break nested one-line blocks into multiple lines [DEFAULT]
+             n=1 stable: keep existing nested-one line blocks intact
+
+           For the above example, the default formatting (-\b-o\bol\blb\bbn\bn=\b=0\b0) is
+
+               foreach (@list) {
+                   if ( $_ eq $asked_for ) { last }
+                   ++$found;
+               }
+
+           If the parameter -\b-o\bol\blb\bbn\bn=\b=1\b1 is given, then the line will be left intact if it is a single line in the source,
+           or it will be broken into multiple lines if it is broken in multiple lines in the source.
+
+   C\bCo\bon\bnt\btr\bro\bol\bll\bli\bin\bng\bg V\bVe\ber\brt\bti\bic\bca\bal\bl A\bAl\bli\big\bgn\bnm\bme\ben\bnt\bt
+       Vertical alignment refers to lining up certain symbols in a list of consecutive similar lines to improve
+       readability.  For example, the "fat commas" are aligned in the following statement:
+
+               $data = $pkg->new(
+                   PeerAddr => join( ".", @port[ 0 .. 3 ] ),
+                   PeerPort => $port[4] * 256 + $port[5],
+                   Proto    => 'tcp'
+               );
+
+       Vertical alignment can be completely turned off using -\b-n\bno\bov\bva\bal\bli\big\bgn\bn, a flag mainly intended for debugging.  However,
+       vertical alignment can be forced to stop and restart by selectively introducing blank lines.  For example, a
+       blank has been inserted in the following code to keep somewhat similar things aligned.
+
+           %option_range = (
+               'format'             => [ 'tidy', 'html', 'user' ],
+               'output-line-ending' => [ 'dos',  'win',  'mac', 'unix' ],
+               'character-encoding' => [ 'none', 'utf8' ],
+
+               'block-brace-tightness'    => [ 0, 2 ],
+               'brace-tightness'          => [ 0, 2 ],
+               'paren-tightness'          => [ 0, 2 ],
+               'square-bracket-tightness' => [ 0, 2 ],
+           );
+
+       Vertical alignment is implemented by locally increasing an existing blank space to produce alignment with an
+       adjacent line.  It cannot occur if there is no blank space to increase.  So if a particular space is removed by
+       one of the existing controls then vertical alignment cannot occur. Likewise, if a space is added with one of the
+       controls, then vertical alignment might occur.
+
+       For example,
+
+               # perltidy -nwls='=>'
+               $data = $pkg->new(
+                   PeerAddr=> join( ".", @port[ 0 .. 3 ] ),
+                   PeerPort=> $port[4] * 256 + $port[5],
+                   Proto=> 'tcp'
+               );
+
+   O\bOt\bth\bhe\ber\br C\bCo\bon\bnt\btr\bro\bol\bls\bs
+       D\bDe\bel\ble\bet\bti\bin\bng\bg s\bse\bel\ble\bec\bct\bte\bed\bd t\bte\bex\bxt\bt
+           Perltidy can selectively delete comments and/or pod documentation.  The command -\b-d\bda\bac\bc or
+           -\b--\b-d\bde\bel\ble\bet\bte\be-\b-a\bal\bll\bl-\b-c\bco\bom\bmm\bme\ben\bnt\bts\bs will delete all comments a\ban\bnd\bd all pod documentation, leaving just code and any leading
+           system control lines.
+
+           The command -\b-d\bdp\bp or -\b--\b-d\bde\bel\ble\bet\bte\be-\b-p\bpo\bod\bd will remove all pod documentation (but not comments).
+
+           Two commands which remove comments (but not pod) are: -\b-d\bdb\bbc\bc or -\b--\b-d\bde\bel\ble\bet\bte\be-\b-b\bbl\blo\boc\bck\bk-\b-c\bco\bom\bmm\bme\ben\bnt\bts\bs and -\b-d\bds\bsc\bc or
+           -\b--\b-d\bde\bel\ble\bet\bte\be-\b-s\bsi\bid\bde\be-\b-c\bco\bom\bmm\bme\ben\bnt\bts\bs.  (Hanging side comments will be deleted with side comments here.)
+
+           The negatives of these commands also work, and are the defaults.  When block comments are deleted, any
+           leading 'hash-bang' will be retained.  Also, if the -\b-x\bx flag is used, any system commands before a leading
+           hash-bang will be retained (even if they are in the form of comments).
+
+       W\bWr\bri\bit\bti\bin\bng\bg s\bse\bel\ble\bec\bct\bte\bed\bd t\bte\bex\bxt\bt t\bto\bo a\ba f\bfi\bil\ble\be
+           When perltidy writes a formatted text file, it has the ability to also send selected text to a file with a
+           _\b._\bT_\bE_\bE extension.  This text can include comments and pod documentation.
+
+           The command -\b-t\bta\bac\bc or  -\b--\b-t\bte\bee\be-\b-a\bal\bll\bl-\b-c\bco\bom\bmm\bme\ben\bnt\bts\bs will write all comments a\ban\bnd\bd all pod documentation.
+
+           The command -\b-t\btp\bp or -\b--\b-t\bte\bee\be-\b-p\bpo\bod\bd will write all pod documentation (but not comments).
+
+           The commands which write comments (but not pod) are: -\b-t\btb\bbc\bc or -\b--\b-t\bte\bee\be-\b-b\bbl\blo\boc\bck\bk-\b-c\bco\bom\bmm\bme\ben\bnt\bts\bs and -\b-t\bts\bsc\bc or
+           -\b--\b-t\bte\bee\be-\b-s\bsi\bid\bde\be-\b-c\bco\bom\bmm\bme\ben\bnt\bts\bs.  (Hanging side comments will be written with side comments here.)
+
+           The negatives of these commands also work, and are the defaults.
+
+       U\bUs\bsi\bin\bng\bg a\ba _\b.\b._\bp\bp_\be\be_\br\br_\bl\bl_\bt\bt_\bi\bi_\bd\bd_\by\by_\br\br_\bc\bc c\bco\bom\bmm\bma\ban\bnd\bd f\bfi\bil\ble\be
+           If you use perltidy frequently, you probably won't be happy until you create a _\b._\bp_\be_\br_\bl_\bt_\bi_\bd_\by_\br_\bc file to avoid
+           typing commonly-used parameters.  Perltidy will first look in your current directory for a command file
+           named _\b._\bp_\be_\br_\bl_\bt_\bi_\bd_\by_\br_\bc.  If it does not find one, it will continue looking for one in other standard locations.
+
+           These other locations are system-dependent, and may be displayed with the command "perltidy -dpro".  Under
+           Unix systems, it will first look for an environment variable P\bPE\bER\bRL\bLT\bTI\bID\bDY\bY.  Then it will look for a _\b._\bp_\be_\br_\bl_\bt_\bi_\bd_\by_\br_\bc
+           file in the home directory, and then for a system-wide file _\b/_\bu_\bs_\br_\b/_\bl_\bo_\bc_\ba_\bl_\b/_\be_\bt_\bc_\b/_\bp_\be_\br_\bl_\bt_\bi_\bd_\by_\br_\bc, and then it will look
+           for _\b/_\be_\bt_\bc_\b/_\bp_\be_\br_\bl_\bt_\bi_\bd_\by_\br_\bc.  Note that these last two system-wide files do not have a leading dot.  Further system-
+           dependent information will be found in the INSTALL file distributed with perltidy.
+
+           Under Windows, perltidy will also search for a configuration file named perltidy.ini since Windows does not
+           allow files with a leading period (.).  Use "perltidy -dpro" to see the possible locations for your system.
+           An example might be _\bC_\b:_\b\_\bD_\bo_\bc_\bu_\bm_\be_\bn_\bt_\bs _\ba_\bn_\bd _\bS_\be_\bt_\bt_\bi_\bn_\bg_\bs_\b\_\bA_\bl_\bl _\bU_\bs_\be_\br_\bs_\b\_\bp_\be_\br_\bl_\bt_\bi_\bd_\by_\b._\bi_\bn_\bi.
+
+           Another option is the use of the PERLTIDY environment variable.  The method for setting environment
+           variables depends upon the version of Windows that you are using.  Instructions for Windows 95 and later
+           versions can be found here:
+
+           http://www.netmanage.com/000/20021101_005_tcm21-6336.pdf
+
+           Under Windows NT / 2000 / XP the PERLTIDY environment variable can be placed in either the user section or
+           the system section.  The later makes the configuration file common to all users on the machine.  Be sure to
+           enter the full path of the configuration file in the value of the environment variable.  Ex.
+           PERLTIDY=C:\Documents and Settings\perltidy.ini
+
+           The configuration file is free format, and simply a list of parameters, just as they would be entered on a
+           command line.  Any number of lines may be used, with any number of parameters per line, although it may be
+           easiest to read with one parameter per line.  Comment text begins with a #, and there must also be a space
+           before the # for side comments.  It is a good idea to put complex parameters in either single or double
+           quotes.
+
+           Here is an example of a _\b._\bp_\be_\br_\bl_\bt_\bi_\bd_\by_\br_\bc file:
+
+             # This is a simple of a .perltidyrc configuration file
+             # This implements a highly spaced style
+             -se    # errors to standard error output
+             -w     # show all warnings
+             -bl    # braces on new lines
+             -pt=0  # parens not tight at all
+             -bt=0  # braces not tight
+             -sbt=0 # square brackets not tight
+
+           The parameters in the _\b._\bp_\be_\br_\bl_\bt_\bi_\bd_\by_\br_\bc file are installed first, so any parameters given on the command line will
+           have priority over them.
+
+           To avoid confusion, perltidy ignores any command in the .perltidyrc file which would cause some kind of dump
+           and an exit.  These are:
+
+            -h -v -ddf -dln -dop -dsn -dtt -dwls -dwrs -ss
+
+           There are several options may be helpful in debugging a _\b._\bp_\be_\br_\bl_\bt_\bi_\bd_\by_\br_\bc file:
+
+           +\bo   A very helpful command is -\b--\b-d\bdu\bum\bmp\bp-\b-p\bpr\bro\bof\bfi\bil\ble\be or -\b-d\bdp\bpr\bro\bo.  It writes a list of all configuration filenames
+               tested to standard output, and if a file is found, it dumps the content to standard output before
+               exiting.  So, to find out where perltidy looks for its configuration files, and which one if any it
+               selects, just enter
+
+                 perltidy -dpro
+
+           +\bo   It may be simplest to develop and test configuration files with alternative names, and invoke them with
+               -\b-p\bpr\bro\bo=\b=f\bfi\bil\ble\ben\bna\bam\bme\be on the command line.  Then rename the desired file to _\b._\bp_\be_\br_\bl_\bt_\bi_\bd_\by_\br_\bc when finished.
+
+           +\bo   The parameters in the _\b._\bp_\be_\br_\bl_\bt_\bi_\bd_\by_\br_\bc file can be switched off with the -\b-n\bnp\bpr\bro\bo option.
+
+           +\bo   The commands -\b--\b-d\bdu\bum\bmp\bp-\b-o\bop\bpt\bti\bio\bon\bns\bs, -\b--\b-d\bdu\bum\bmp\bp-\b-d\bde\bef\bfa\bau\bul\blt\bts\bs, -\b--\b-d\bdu\bum\bmp\bp-\b-l\blo\bon\bng\bg-\b-n\bna\bam\bme\bes\bs, and -\b--\b-d\bdu\bum\bmp\bp-\b-s\bsh\bho\bor\brt\bt-\b-n\bna\bam\bme\bes\bs, all described
+               below, may all be helpful.
+
+       C\bCr\bre\bea\bat\bti\bin\bng\bg a\ba n\bne\bew\bw a\bab\bbb\bbr\bre\bev\bvi\bia\bat\bti\bio\bon\bn
+           A special notation is available for use in a _\b._\bp_\be_\br_\bl_\bt_\bi_\bd_\by_\br_\bc file for creating an abbreviation for a group of
+           options.  This can be used to create a shorthand for one or more styles which are frequently, but not
+           always, used.  The notation is to group the options within curly braces which are preceded by the name of
+           the alias (without leading dashes), like this:
+
+                   newword {
+                   -opt1
+                   -opt2
+                   }
+
+           where n\bne\bew\bww\bwo\bor\brd\bd is the abbreviation, and o\bop\bpt\bt1\b1, etc, are existing parameters _\bo_\br _\bo_\bt_\bh_\be_\br _\ba_\bb_\bb_\br_\be_\bv_\bi_\ba_\bt_\bi_\bo_\bn_\bs.  The main
+           syntax requirement is that the new abbreviation along with its opening curly brace must begin on a new line.
+           Space before and after the curly braces is optional.
+
+           For a specific example, the following line
+
+                   oneliner { --maximum-line-length=0 --noadd-newlines --noadd-terminal-newline}
+
+           or equivalently with abbreviations
+
+                   oneliner { -l=0 -nanl -natnl }
+
+           could be placed in a _\b._\bp_\be_\br_\bl_\bt_\bi_\bd_\by_\br_\bc file to temporarily override the maximum line length with a large value, to
+           temporarily prevent new line breaks from being added, and to prevent an extra newline character from being
+           added the file.  All other settings in the _\b._\bp_\be_\br_\bl_\bt_\bi_\bd_\by_\br_\bc file still apply.  Thus it provides a way to format a
+           long 'one liner' when perltidy is invoked with
+
+                   perltidy --oneliner ...
+
+           (Either "-oneliner" or "--oneliner" may be used).
+
+       Skipping leading non-perl commands with -\b-x\bx or -\b--\b-l\blo\boo\bok\bk-\b-f\bfo\bor\br-\b-h\bha\bas\bsh\bh-\b-b\bba\ban\bng\bg
+           If your script has leading lines of system commands or other text which are not valid perl code, and which
+           are separated from the start of the perl code by a "hash-bang" line, ( a line of the form "#!...perl" ), you
+           must use the -\b-x\bx flag to tell perltidy not to parse and format any lines before the "hash-bang" line.  This
+           option also invokes perl with a -x flag when checking the syntax.  This option was originally added to allow
+           perltidy to parse interactive VMS scripts, but it should be used for any script which is normally invoked
+           with "perl -x".
+
+           Please note: do not use this flag unless you are sure your script needs it.  Parsing errors can occur if it
+           does not have a hash-bang, or, for example, if the actual first hash-bang is in a here-doc. In that case a
+           parsing error will occur because the tokenization will begin in the middle of the here-doc.
+
+       M\bMa\bak\bki\bin\bng\bg a\ba f\bfi\bil\ble\be u\bun\bnr\bre\bea\bad\bda\bab\bbl\ble\be
+           The goal of perltidy is to improve the readability of files, but there are two commands which have the
+           opposite effect, -\b--\b-m\bma\ban\bng\bgl\ble\be and -\b--\b-e\bex\bxt\btr\bru\bud\bde\be.  They are actually merely aliases for combinations of other
+           parameters.  Both of these strip all possible whitespace, but leave comments and pod documents, so that they
+           are essentially reversible.  The difference between these is that -\b--\b-m\bma\ban\bng\bgl\ble\be puts the fewest possible line
+           breaks in a script while -\b--\b-e\bex\bxt\btr\bru\bud\bde\be puts the maximum possible.  Note that these options do not provided any
+           meaningful obfuscation, because perltidy can be used to reformat the files.  They were originally developed
+           to help test the tokenization logic of perltidy, but they have other uses.  One use for -\b--\b-m\bma\ban\bng\bgl\ble\be is the
+           following:
+
+             perltidy --mangle myfile.pl -st | perltidy -o myfile.pl.new
+
+           This will form the maximum possible number of one-line blocks (see next section), and can sometimes help
+           clean up a badly formatted script.
+
+           A similar technique can be used with -\b--\b-e\bex\bxt\btr\bru\bud\bde\be instead of -\b--\b-m\bma\ban\bng\bgl\ble\be to make the minimum number of one-line
+           blocks.
+
+           Another use for -\b--\b-m\bma\ban\bng\bgl\ble\be is to combine it with -\b-d\bda\bac\bc to reduce the file size of a perl script.
+
+       D\bDe\beb\bbu\bug\bgg\bgi\bin\bng\bg
+           The following flags are available for debugging:
+
+           -\b--\b-d\bdu\bum\bmp\bp-\b-c\bcu\bud\bdd\bdl\ble\bed\bd-\b-b\bbl\blo\boc\bck\bk-\b-l\bli\bis\bst\bt or -\b-d\bdc\bcb\bbl\bl will dump to standard output the internal hash of cuddled block types
+           created by a -\b-c\bcu\bud\bdd\bdl\ble\bed\bd-\b-b\bbl\blo\boc\bck\bk-\b-l\bli\bis\bst\bt input string.
+
+           -\b--\b-d\bdu\bum\bmp\bp-\b-d\bde\bef\bfa\bau\bul\blt\bts\bs or -\b-d\bdd\bdf\bf will write the default option set to standard output and quit
+
+           -\b--\b-d\bdu\bum\bmp\bp-\b-p\bpr\bro\bof\bfi\bil\ble\be or -\b-d\bdp\bpr\bro\bo  will write the name of the current configuration file and its contents to standard
+           output and quit.
+
+           -\b--\b-d\bdu\bum\bmp\bp-\b-o\bop\bpt\bti\bio\bon\bns\bs or -\b-d\bdo\bop\bp  will write current option set to standard output and quit.
+
+           -\b--\b-d\bdu\bum\bmp\bp-\b-l\blo\bon\bng\bg-\b-n\bna\bam\bme\bes\bs or -\b-d\bdl\bln\bn  will write all command line long names (passed to Get_options) to standard output
+           and quit.
+
+           -\b--\b-d\bdu\bum\bmp\bp-\b-s\bsh\bho\bor\brt\bt-\b-n\bna\bam\bme\bes\bs  or -\b-d\bds\bsn\bn will write all command line short names to standard output and quit.
+
+           -\b--\b-d\bdu\bum\bmp\bp-\b-t\bto\bok\bke\ben\bn-\b-t\bty\byp\bpe\bes\bs or -\b-d\bdt\btt\bt  will write a list of all token types to standard output and quit.
+
+           -\b--\b-d\bdu\bum\bmp\bp-\b-w\bwa\ban\bnt\bt-\b-l\ble\bef\bft\bt-\b-s\bsp\bpa\bac\bce\be or -\b-d\bdw\bwl\bls\bs  will write the hash %want_left_space to standard output and quit.  See the
+           section on controlling whitespace around tokens.
+
+           -\b--\b-d\bdu\bum\bmp\bp-\b-w\bwa\ban\bnt\bt-\b-r\bri\big\bgh\bht\bt-\b-s\bsp\bpa\bac\bce\be or -\b-d\bdw\bwr\brs\bs  will write the hash %want_right_space to standard output and quit.  See
+           the section on controlling whitespace around tokens.
+
+           -\b--\b-n\bno\bo-\b-m\bme\bem\bmo\boi\biz\bze\be or -\b-n\bnm\bme\bem\bm  will turn of memoizing.  Memoization can reduce run time when running perltidy
+           repeatedly in a single process.  It is on by default but can be deactivated for testing with -\b-n\bnm\bme\bem\bm.
+
+           -\b--\b-n\bno\bo-\b-t\bti\bim\bme\bes\bst\bta\bam\bmp\bp or -\b-n\bnt\bts\bs will eliminate any time stamps in output files to prevent differences in dates from
+           causing test installation scripts to fail. There are just a couple of places where timestamps normally
+           occur. One is in the headers of html files, and another is when the -\b-c\bcs\bsc\bcw\bw option is selected. The default is
+           to allow timestamps (-\b--\b-t\bti\bim\bme\bes\bst\bta\bam\bmp\bp or -\b-t\bts\bs).
+
+           -\b--\b-f\bfi\bil\ble\be-\b-s\bsi\biz\bze\be-\b-o\bor\brd\bde\ber\br or -\b-f\bfs\bso\bo will cause files to be processed in order of increasing size, when multiple files
+           are being processed.  This is useful during program development, when large numbers of files with varying
+           sizes are processed, because it can reduce virtual memory usage.
+
+           -\b--\b-m\bma\bax\bxi\bim\bmu\bum\bm-\b-f\bfi\bil\ble\be-\b-s\bsi\biz\bze\be-\b-m\bmb\bb=\b=n\bn or -\b-m\bma\bax\bxf\bfs\bs=\b=n\bn specifies the maximum file size in megabytes that perltidy will attempt
+           to format. This parameter is provided to avoid causing system problems by accidentally attempting to format
+           an extremely large data file. Most perl scripts are less than about 2 MB in size. The integer n\bn has a
+           default value of 10, so perltidy will skip formatting files which have a size greater than 10 MB.  The
+           command to increase the limit to 20 MB for example would be
+
+             perltidy -maxfs=20
+
+           This only applies to files specified by filename on the command line.
+
+           -\b--\b-m\bma\bax\bxi\bim\bmu\bum\bm-\b-l\ble\bev\bve\bel\bl-\b-e\ber\brr\bro\bor\brs\bs=\b=n\bn or -\b-m\bma\bax\bxl\ble\be=\b=n\bn specifies the maximum number of indentation level errors are allowed
+           before perltidy skips formatting and just outputs a file verbatim.  The default is n\bn=\b=1\b1.  This means that if
+           the final indentation of a script differs from the starting indentation by more than 1 levels, the file will
+           be output verbatim.  To avoid formatting if there are any indentation level errors use -maxle=0. To skip
+           this check you can either set n equal to a large number, such as n\bn=\b=1\b10\b00\b0, or set n\bn=\b=-\b-1\b1.
+
+           For example, the following script has level error of 3 and will be output verbatim
+
+               Input and default output:
+               {{{
+
+               perltidy -maxle=100
+               {
+                   {
+                       {
+
+           -\b--\b-m\bma\bax\bxi\bim\bmu\bum\bm-\b-u\bun\bne\bex\bxp\bpe\bec\bct\bte\bed\bd-\b-e\ber\brr\bro\bor\brs\bs=\b=n\bn or -\b-m\bma\bax\bxu\bue\be=\b=n\bn specifies the maximum number of unexpected tokenization errors are
+           allowed before formatting is skipped and a script is output verbatim.  The intention is to avoid
+           accidentally formatting a non-perl script, such as an html file for example.  This check can be turned off
+           by setting n\bn=\b=0\b0.
+
+           A recommended value is n\bn=\b=3\b3.  However, the default is n\bn=\b=0\b0 (skip this check) to avoid causing problems with
+           scripts which have extended syntaxes.
+
+           -\b-D\bDE\bEB\bBU\bUG\bG  will write a file with extension _\b._\bD_\bE_\bB_\bU_\bG for each input file showing the tokenization of all lines of
+           code.
+
+       W\bWo\bor\brk\bki\bin\bng\bg w\bwi\bit\bth\bh M\bMa\bak\bke\beM\bMa\bak\bke\ber\br,\b, A\bAu\but\bto\boL\bLo\boa\bad\bde\ber\br a\ban\bnd\bd S\bSe\bel\blf\bfL\bLo\boa\bad\bde\ber\br
+           The first $VERSION line of a file which might be eval'd by MakeMaker is passed through unchanged except for
+           indentation.  Use -\b--\b-n\bno\bop\bpa\bas\bss\bs-\b-v\bve\ber\brs\bsi\bio\bon\bn-\b-l\bli\bin\bne\be, or -\b-n\bnp\bpv\bvl\bl, to deactivate this feature.
+
+           If the AutoLoader module is used, perltidy will continue formatting code after seeing an __END__ line.  Use
+           -\b--\b-n\bno\bol\blo\boo\bok\bk-\b-f\bfo\bor\br-\b-a\bau\but\bto\bol\blo\boa\bad\bde\ber\br, or -\b-n\bnl\bla\bal\bl, to deactivate this feature.
+
+           Likewise, if the SelfLoader module is used, perltidy will continue formatting code after seeing a __DATA__
+           line.  Use -\b--\b-n\bno\bol\blo\boo\bok\bk-\b-f\bfo\bor\br-\b-s\bse\bel\blf\bfl\blo\boa\bad\bde\ber\br, or -\b-n\bnl\bls\bsl\bl, to deactivate this feature.
+
+       W\bWo\bor\brk\bki\bin\bng\bg a\bar\bro\bou\bun\bnd\bd p\bpr\bro\bob\bbl\ble\bem\bms\bs w\bwi\bit\bth\bh o\bol\bld\bde\ber\br v\bve\ber\brs\bsi\bio\bon\bn o\bof\bf P\bPe\ber\brl\bl
+           Perltidy contains a number of rules which help avoid known subtleties and problems with older versions of
+           perl, and these rules always take priority over whatever formatting flags have been set.  For example,
+           perltidy will usually avoid starting a new line with a bareword, because this might cause problems if "use
+           strict" is active.
+
+           There is no way to override these rules.
+
+H\bHT\bTM\bML\bL O\bOP\bPT\bTI\bIO\bON\bNS\bS
+       The -\b-h\bht\btm\bml\bl master switch
+           The flag -\b-h\bht\btm\bml\bl causes perltidy to write an html file with extension _\b._\bh_\bt_\bm_\bl.  So, for example, the following
+           command
+
+                   perltidy -html somefile.pl
+
+           will produce a syntax-colored html file named _\bs_\bo_\bm_\be_\bf_\bi_\bl_\be_\b._\bp_\bl_\b._\bh_\bt_\bm_\bl which may be viewed with a browser.
+
+           P\bPl\ble\bea\bas\bse\be N\bNo\bot\bte\be: In this case, perltidy does not do any formatting to the input file, and it does not write a
+           formatted file with extension _\b._\bt_\bd_\by.  This means that two perltidy runs are required to create a fully
+           reformatted, html copy of a script.
+
+       The -\b-p\bpr\bre\be flag for code snippets
+           When the -\b-p\bpr\bre\be flag is given, only the pre-formatted section, within the <PRE> and </PRE> tags, will be
+           output.  This simplifies inclusion of the output in other files.  The default is to output a complete web
+           page.
+
+       The -\b-n\bnn\bnn\bn flag for line numbering
+           When the -\b-n\bnn\bnn\bn flag is given, the output lines will be numbered.
+
+       The -\b-t\bto\boc\bc, or -\b--\b-h\bht\btm\bml\bl-\b-t\bta\bab\bbl\ble\be-\b-o\bof\bf-\b-c\bco\bon\bnt\bte\ben\bnt\bts\bs flag
+           By default, a table of contents to packages and subroutines will be written at the start of html output.
+           Use -\b-n\bnt\bto\boc\bc to prevent this.  This might be useful, for example, for a pod document which contains a number of
+           unrelated code snippets.  This flag only influences the code table of contents; it has no effect on any
+           table of contents produced by pod2html (see next item).
+
+       The -\b-p\bpo\bod\bd, or -\b--\b-p\bpo\bod\bd2\b2h\bht\btm\bml\bl flag
+           There are two options for formatting pod documentation.  The default is to pass the pod through the
+           Pod::Html module (which forms the basis of the pod2html utility).  Any code sections are formatted by
+           perltidy, and the results then merged.  Note: perltidy creates a temporary file when Pod::Html is used; see
+           "FILES".  Also, Pod::Html creates temporary files for its cache.
+
+           NOTE: Perltidy counts the number of "=cut" lines, and either moves the pod text to the top of the html file
+           if there is one "=cut", or leaves the pod text in its original order (interleaved with code) otherwise.
+
+           Most of the flags accepted by pod2html may be included in the perltidy command line, and they will be passed
+           to pod2html.  In some cases, the flags have a prefix "pod" to emphasize that they are for the pod2html, and
+           this prefix will be removed before they are passed to pod2html.  The flags which have the additional "pod"
+           prefix are:
+
+              --[no]podheader --[no]podindex --[no]podrecurse --[no]podquiet
+              --[no]podverbose --podflush
+
+           The flags which are unchanged from their use in pod2html are:
+
+              --backlink=s --cachedir=s --htmlroot=s --libpods=s --title=s
+              --podpath=s --podroot=s
+
+           where 's' is an appropriate character string.  Not all of these flags are available in older versions of
+           Pod::Html.  See your Pod::Html documentation for more information.
+
+           The alternative, indicated with -\b-n\bnp\bpo\bod\bd, is not to use Pod::Html, but rather to format pod text in italics (or
+           whatever the stylesheet indicates), without special html markup.  This is useful, for example, if pod is
+           being used as an alternative way to write comments.
+
+       The -\b-f\bfr\brm\bm, or -\b--\b-f\bfr\bra\bam\bme\bes\bs flag
+           By default, a single html output file is produced.  This can be changed with the -\b-f\bfr\brm\bm option, which creates
+           a frame holding a table of contents in the left panel and the source code in the right side. This simplifies
+           code browsing.  Assume, for example, that the input file is _\bM_\by_\bM_\bo_\bd_\bu_\bl_\be_\b._\bp_\bm.  Then, for default file extension
+           choices, these three files will be created:
+
+            MyModule.pm.html      - the frame
+            MyModule.pm.toc.html  - the table of contents
+            MyModule.pm.src.html  - the formatted source code
+
+           Obviously this file naming scheme requires that output be directed to a real file (as opposed to, say,
+           standard output).  If this is not the case, or if the file extension is unknown, the -\b-f\bfr\brm\bm option will be
+           ignored.
+
+       The -\b-t\bte\bex\bxt\bt=\b=s\bs, or -\b--\b-h\bht\btm\bml\bl-\b-t\bto\boc\bc-\b-e\bex\bxt\bte\ben\bns\bsi\bio\bon\bn flag
+           Use this flag to specify the extra file extension of the table of contents file when html frames are used.
+           The default is "toc".  See "Specifying File Extensions".
+
+       The -\b-s\bse\bex\bxt\bt=\b=s\bs, or -\b--\b-h\bht\btm\bml\bl-\b-s\bsr\brc\bc-\b-e\bex\bxt\bte\ben\bns\bsi\bio\bon\bn flag
+           Use this flag to specify the extra file extension of the content file when html frames are used.  The
+           default is "src".  See "Specifying File Extensions".
+
+       The -\b-h\bhe\ben\bnt\bt, or -\b--\b-h\bht\btm\bml\bl-\b-e\ben\bnt\bti\bit\bti\bie\bes\bs flag
+           This flag controls the use of Html::Entities for html formatting.  By default, the module Html::Entities is
+           used to encode special symbols.  This may not be the right thing for some browser/language combinations.
+           Use --nohtml-entities or -nhent to prevent this.
+
+       S\bSt\bty\byl\ble\be S\bSh\bhe\bee\bet\bts\bs
+           Style sheets make it very convenient to control and adjust the appearance of html pages.  The default
+           behavior is to write a page of html with an embedded style sheet.
+
+           An alternative to an embedded style sheet is to create a page with a link to an external style sheet.  This
+           is indicated with the -\b-c\bcs\bss\bs=\b=f\bfi\bil\ble\ben\bna\bam\bme\be,  where the external style sheet is _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be.  The external style sheet
+           _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be will be created if and only if it does not exist.  This option is useful for controlling multiple
+           pages from a single style sheet.
+
+           To cause perltidy to write a style sheet to standard output and exit, use the -\b-s\bss\bs, or -\b--\b-s\bst\bty\byl\ble\bes\bsh\bhe\bee\bet\bt, flag.
+           This is useful if the style sheet could not be written for some reason, such as if the -\b-p\bpr\bre\be flag was used.
+           Thus, for example,
+
+             perltidy -html -ss >mystyle.css
+
+           will write a style sheet with the default properties to file _\bm_\by_\bs_\bt_\by_\bl_\be_\b._\bc_\bs_\bs.
+
+           The use of style sheets is encouraged, but a web page without a style sheets can be created with the flag
+           -\b-n\bns\bss\bs.  Use this option if you must to be sure that older browsers (roughly speaking, versions prior to 4.0
+           of Netscape Navigator and Internet Explorer) can display the syntax-coloring of the html files.
+
+       C\bCo\bon\bnt\btr\bro\bol\bll\bli\bin\bng\bg H\bHT\bTM\bML\bL p\bpr\bro\bop\bpe\ber\brt\bti\bie\bes\bs
+           Note: It is usually more convenient to accept the default properties and then edit the stylesheet which is
+           produced.  However, this section shows how to control the properties with flags to perltidy.
+
+           Syntax colors may be changed from their default values by flags of the either the long form,
+           -\b-h\bht\btm\bml\bl-\b-c\bco\bol\blo\bor\br-\b-x\bxx\bxx\bxx\bxx\bxx\bx=\b=n\bn, or more conveniently the short form, -\b-h\bhc\bcx\bx=\b=n\bn, where x\bxx\bxx\bxx\bxx\bxx\bx is one of the following
+           words, and x\bx is the corresponding abbreviation:
+
+                 Token Type             xxxxxx           x
+                 ----------             --------         --
+                 comment                comment          c
+                 number                 numeric          n
+                 identifier             identifier       i
+                 bareword, function     bareword         w
+                 keyword                keyword          k
+                 quite, pattern         quote            q
+                 here doc text          here-doc-text    h
+                 here doc target        here-doc-target  hh
+                 punctuation            punctuation      pu
+                 parentheses            paren            p
+                 structural braces      structure        s
+                 semicolon              semicolon        sc
+                 colon                  colon            co
+                 comma                  comma            cm
+                 label                  label            j
+                 sub definition name    subroutine       m
+                 pod text               pod-text         pd
+
+           A default set of colors has been defined, but they may be changed by providing values to any of the
+           following parameters, where n\bn is either a 6 digit hex RGB color value or an ascii name for a color, such as
+           'red'.
+
+           To illustrate, the following command will produce an html file _\bs_\bo_\bm_\be_\bf_\bi_\bl_\be_\b._\bp_\bl_\b._\bh_\bt_\bm_\bl with "aqua" keywords:
+
+                   perltidy -html -hck=00ffff somefile.pl
+
+           and this should be equivalent for most browsers:
+
+                   perltidy -html -hck=aqua somefile.pl
+
+           Perltidy merely writes any non-hex names that it sees in the html file.  The following 16 color names are
+           defined in the HTML 3.2 standard:
+
+                   black   => 000000,
+                   silver  => c0c0c0,
+                   gray    => 808080,
+                   white   => ffffff,
+                   maroon  => 800000,
+                   red     => ff0000,
+                   purple  => 800080,
+                   fuchsia => ff00ff,
+                   green   => 008000,
+                   lime    => 00ff00,
+                   olive   => 808000,
+                   yellow  => ffff00
+                   navy    => 000080,
+                   blue    => 0000ff,
+                   teal    => 008080,
+                   aqua    => 00ffff,
+
+           Many more names are supported in specific browsers, but it is safest to use the hex codes for other colors.
+           Helpful color tables can be located with an internet search for "HTML color tables".
+
+           Besides color, two other character attributes may be set: bold, and italics.  To set a token type to use
+           bold, use the flag -\b--\b-h\bht\btm\bml\bl-\b-b\bbo\bol\bld\bd-\b-x\bxx\bxx\bxx\bxx\bxx\bx or -\b-h\bhb\bbx\bx, where x\bxx\bxx\bxx\bxx\bxx\bx or x\bx are the long or short names from the above
+           table.  Conversely, to set a token type to NOT use bold, use -\b--\b-n\bno\boh\bht\btm\bml\bl-\b-b\bbo\bol\bld\bd-\b-x\bxx\bxx\bxx\bxx\bxx\bx or -\b-n\bnh\bhb\bbx\bx.
+
+           Likewise, to set a token type to use an italic font, use the flag -\b--\b-h\bht\btm\bml\bl-\b-i\bit\bta\bal\bli\bic\bc-\b-x\bxx\bxx\bxx\bxx\bxx\bx or -\b-h\bhi\bix\bx, where again
+           x\bxx\bxx\bxx\bxx\bxx\bx or x\bx are the long or short names from the above table.  And to set a token type to NOT use italics,
+           use -\b--\b-n\bno\boh\bht\btm\bml\bl-\b-i\bit\bta\bal\bli\bic\bc-\b-x\bxx\bxx\bxx\bxx\bxx\bx or -\b-n\bnh\bhi\bix\bx.
+
+           For example, to use bold braces and lime color, non-bold, italics keywords the following command would be
+           used:
+
+                   perltidy -html -hbs -hck=00FF00 -nhbk -hik somefile.pl
+
+           The background color can be specified with -\b--\b-h\bht\btm\bml\bl-\b-c\bco\bol\blo\bor\br-\b-b\bba\bac\bck\bkg\bgr\bro\bou\bun\bnd\bd=\b=n\bn, or -\b-h\bhc\bcb\bbg\bg=\b=n\bn for short, where n is a 6
+           character hex RGB value.  The default color of text is the value given to p\bpu\bun\bnc\bct\btu\bua\bat\bti\bio\bon\bn, which is black as a
+           default.
+
+           Here are some notes and hints:
+
+           1. If you find a preferred set of these parameters, you may want to create a _\b._\bp_\be_\br_\bl_\bt_\bi_\bd_\by_\br_\bc file containing
+           them.  See the perltidy man page for an explanation.
+
+           2. Rather than specifying values for these parameters, it is probably easier to accept the defaults and then
+           edit a style sheet.  The style sheet contains comments which should make this easy.
+
+           3. The syntax-colored html files can be very large, so it may be best to split large files into smaller
+           pieces to improve download times.
+
+S\bSO\bOM\bME\bE C\bCO\bOM\bMM\bMO\bON\bN I\bIN\bNP\bPU\bUT\bT C\bCO\bON\bNV\bVE\bEN\bNT\bTI\bIO\bON\bNS\bS
+   S\bSp\bpe\bec\bci\bif\bfy\byi\bin\bng\bg B\bBl\blo\boc\bck\bk T\bTy\byp\bpe\bes\bs
+       Several parameters which refer to code block types may be customized by also specifying an associated list of
+       block types.  The type of a block is the name of the keyword which introduces that block, such as i\bif\bf, e\bel\bls\bse\be, or
+       s\bsu\bub\bb.  An exception is a labeled block, which has no keyword, and should be specified with just a colon.  To
+       specify all blocks use '\b'*\b*'\b'.
+
+       The keyword s\bsu\bub\bb indicates a named sub.  For anonymous subs, use the special keyword a\bas\bsu\bub\bb.
+
+       For example, the following parameter specifies "sub", labels, "BEGIN", and "END" blocks:
+
+          -cscl="sub : BEGIN END"
+
+       (the meaning of the -cscl parameter is described above.)  Note that quotes are required around the list of block
+       types because of the spaces.  For another example, the following list specifies all block types for vertical
+       tightness:
+
+          -bbvtl='*'
+
+   S\bSp\bpe\bec\bci\bif\bfy\byi\bin\bng\bg F\bFi\bil\ble\be E\bEx\bxt\bte\ben\bns\bsi\bio\bon\bns\bs
+       Several parameters allow default file extensions to be overridden.  For example, a backup file extension may be
+       specified with -\b-b\bbe\bex\bxt\bt=\b=e\bex\bxt\bt, where e\bex\bxt\bt is some new extension.  In order to provides the user some flexibility, the
+       following convention is used in all cases to decide if a leading '.' should be used.  If the extension "ext"
+       begins with "A-Z", "a-z", or "0-9", then it will be appended to the filename with an intermediate '.' (or
+       perhaps a '_' on VMS systems).  Otherwise, it will be appended directly.
+
+       For example, suppose the file is _\bs_\bo_\bm_\be_\bf_\bi_\bl_\be_\b._\bp_\bl.  For "-bext=old", a '.' is added to give _\bs_\bo_\bm_\be_\bf_\bi_\bl_\be_\b._\bp_\bl_\b._\bo_\bl_\bd.  For
+       "-bext=.old", no additional '.' is added, so again the backup file is _\bs_\bo_\bm_\be_\bf_\bi_\bl_\be_\b._\bp_\bl_\b._\bo_\bl_\bd.  For "-bext=~", then no
+       dot is added, and the backup file will be _\bs_\bo_\bm_\be_\bf_\bi_\bl_\be_\b._\bp_\bl_\b~  .
+
+S\bSW\bWI\bIT\bTC\bCH\bHE\bES\bS W\bWH\bHI\bIC\bCH\bH M\bMA\bAY\bY B\bBE\bE N\bNE\bEG\bGA\bAT\bTE\bED\bD
+       The following list shows all short parameter names which allow a prefix 'n' to produce the negated form:
+
+        D      anl    asbl   asc    ast    asu    atnl   aws    b      baa
+        baao   bar    bbao   bbb    bbc    bbs    bl     bli    boa    boc
+        bok    bol    bom    bos    bot    cblx   ce     conv   cs     csc
+        cscb   cscw   dac    dbc    dcbl   dcsc   ddf    dln    dnl    dop
+        dp     dpro   dsc    dsm    dsn    dtt    dwls   dwrs   dws    f
+        fll    fpva   frm    fs     fso    gcs    hbc    hbcm   hbco   hbh
+        hbhh   hbi    hbj    hbk    hbm    hbn    hbp    hbpd   hbpu   hbq
+        hbs    hbsc   hbv    hbw    hent   hic    hicm   hico   hih    hihh
+        hii    hij    hik    him    hin    hip    hipd   hipu   hiq    his
+        hisc   hiv    hiw    hsc    html   ibc    icb    icp    iob    isbc
+        iscl   kgb    kgbd   kgbi   kis    lal    log    lop    lp     lsl
+        mem    nib    ohbr   okw    ola    olc    oll    olq    opr    opt
+        osbc   osbr   otr    ple    pod    pvl    q      sac    sbc    sbl
+        scbb   schb   scp    scsb   sct    se     sfp    sfs    skp    sob
+        sobb   sohb   sop    sosb   sot    ssc    st     sts    t      tac
+        tbc    toc    tp     tqw    trp    ts     tsc    tso    vmll   w
+        wn     x      xci    xs
+
+       Equivalently, the prefix 'no' or 'no-' on the corresponding long names may be used.
+
+L\bLI\bIM\bMI\bIT\bTA\bAT\bTI\bIO\bON\bNS\bS
+       P\bPa\bar\brs\bsi\bin\bng\bg L\bLi\bim\bmi\bit\bta\bat\bti\bio\bon\bns\bs
+           Perltidy should work properly on most perl scripts.  It does a lot of self-checking, but still, it is
+           possible that an error could be introduced and go undetected.  Therefore, it is essential to make careful
+           backups and to test reformatted scripts.
+
+           The main current limitation is that perltidy does not scan modules included with 'use' statements.  This
+           makes it necessary to guess the context of any bare words introduced by such modules.  Perltidy has good
+           guessing algorithms, but they are not infallible.  When it must guess, it leaves a message in the log file.
+
+           If you encounter a bug, please report it.
+
+       W\bWh\bha\bat\bt p\bpe\ber\brl\blt\bti\bid\bdy\by d\bdo\boe\bes\bs n\bno\bot\bt p\bpa\bar\brs\bse\be a\ban\bnd\bd f\bfo\bor\brm\bma\bat\bt
+           Perltidy indents but does not reformat comments and "qw" quotes.  Perltidy does not in any way modify the
+           contents of here documents or quoted text, even if they contain source code.  (You could, however, reformat
+           them separately).  Perltidy does not format 'format' sections in any way.  And, of course, it does not
+           modify pod documents.
+
+F\bFI\bIL\bLE\bES\bS
+       T\bTe\bem\bmp\bpo\bor\bra\bar\bry\by f\bfi\bil\ble\bes\bs
+           Under the -html option with the default --pod2html flag, a temporary file is required to pass text to
+           Pod::Html.  Unix systems will try to use the POSIX t\btm\bmp\bpn\bna\bam\bm(\b()\b) function.  Otherwise the file _\bp_\be_\br_\bl_\bt_\bi_\bd_\by_\b._\bT_\bM_\bP will
+           be temporarily created in the current working directory.
+
+       S\bSp\bpe\bec\bci\bia\bal\bl f\bfi\bil\ble\bes\bs w\bwh\bhe\ben\bn s\bst\bta\ban\bnd\bda\bar\brd\bd i\bin\bnp\bpu\but\bt i\bis\bs u\bus\bse\bed\bd
+           When standard input is used, the log file, if saved, is _\bp_\be_\br_\bl_\bt_\bi_\bd_\by_\b._\bL_\bO_\bG, and any errors are written to
+           _\bp_\be_\br_\bl_\bt_\bi_\bd_\by_\b._\bE_\bR_\bR unless the -\b-s\bse\be flag is set.  These are saved in the current working directory.
+
+       F\bFi\bil\ble\bes\bs o\bov\bve\ber\brw\bwr\bri\bit\btt\bte\ben\bn
+           The following file extensions are used by perltidy, and files with these extensions may be overwritten or
+           deleted: _\b._\bE_\bR_\bR, _\b._\bL_\bO_\bG, _\b._\bT_\bE_\bE, and/or _\b._\bt_\bd_\by, _\b._\bh_\bt_\bm_\bl, and _\b._\bb_\ba_\bk, depending on the run type and settings.
+
+       F\bFi\bil\ble\bes\bs e\bex\bxt\bte\ben\bns\bsi\bio\bon\bns\bs l\bli\bim\bmi\bit\bta\bat\bti\bio\bon\bns\bs
+           Perltidy does not operate on files for which the run could produce a file with a duplicated file extension.
+           These extensions include _\b._\bL_\bO_\bG, _\b._\bE_\bR_\bR, _\b._\bT_\bE_\bE, and perhaps _\b._\bt_\bd_\by and _\b._\bb_\ba_\bk, depending on the run type.  The
+           purpose of this rule is to prevent generating confusing filenames such as _\bs_\bo_\bm_\be_\bf_\bi_\bl_\be_\b._\bt_\bd_\by_\b._\bt_\bd_\by_\b._\bt_\bd_\by.
+
+E\bER\bRR\bRO\bOR\bR H\bHA\bAN\bND\bDL\bLI\bIN\bNG\bG
+       An exit value of 0, 1, or 2 is returned by perltidy to indicate the status of the result.
+
+       A exit value of 0 indicates that perltidy ran to completion with no error messages.
+
+       A non-zero exit value indicates some kind of problem was detected.
+
+       An exit value of 1 indicates that perltidy terminated prematurely, usually due to some kind of errors in the
+       input parameters.  This can happen for example if a parameter is misspelled or given an invalid value.  Error
+       messages in the standard error output will indicate the cause of any problem.  If perltidy terminates
+       prematurely then no output files will be produced.
+
+       An exit value of 2 indicates that perltidy was able to run to completion but there there are (1) warning
+       messages in the standard error output related to parameter errors or problems and/or (2) warning messages in the
+       perltidy error file(s) relating to possible syntax errors in one or more of the source script(s) being tidied.
+       When multiple files are being processed, an error detected in any single file will produce this type of exit
+       condition.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+       p\bpe\ber\brl\bls\bst\bty\byl\ble\be(1), P\bPe\ber\brl\bl:\b::\b:T\bTi\bid\bdy\by(3)
+
+I\bIN\bNS\bST\bTA\bAL\bLL\bLA\bAT\bTI\bIO\bON\bN
+       The perltidy binary uses the Perl::Tidy module and is installed when that module is installed.  The module name
+       is case-sensitive.  For example, the basic command for installing with cpanm is 'cpanm Perl::Tidy'.
+
+V\bVE\bER\bRS\bSI\bIO\bON\bN
+       This man page documents perltidy version 20210717
+
+B\bBU\bUG\bG R\bRE\bEP\bPO\bOR\bRT\bTS\bS
+       A list of current bugs and issues can be found at the CPAN site
+       <https://rt.cpan.org/Public/Dist/Display.html?Name=Perl-Tidy>
+
+       To report a new bug or problem, use the link on this page.
+
+       The source code repository is at <https://github.com/perltidy/perltidy>.
+
+C\bCO\bOP\bPY\bYR\bRI\bIG\bGH\bHT\bT
+       Copyright (c) 2000-2021 by Steve Hancock
+
+L\bLI\bIC\bCE\bEN\bNS\bSE\bE
+       This package is free software; you can redistribute it and/or modify it under the terms of the "GNU General
+       Public License".
+
+       Please refer to the file "COPYING" for details.
+
+D\bDI\bIS\bSC\bCL\bLA\bAI\bIM\bME\bER\bR
+       This package is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
+       implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+       See the "GNU General Public License" for more details.
+
+perl v5.22.1                                           2021-07-15                                           PERLTIDY(1)