B::Concise

A module that walks the Perl syntax tree, printing concise info about the internal OPs of a Perl program's syntax tree. The format of the information displayed is customizable. Its function is similar to that of Perl's -Dx debugging flag or the B::Terse module, but it is more sophisticated and flexible. Invoke as:

perl -MO=Concise[,options] program

program is the name of the Perl script to compile. Any non-option arguments are treated as the names of objects to be saved; the main program is assumed if there are no extra arguments. Possible options are:

  • -basic
  • Prints OPs in the order they appear in the OP tree (a preorder traversal, starting at the root). Default.
  • -exec
  • Prints OPs in the order they would normally execute. For the majority of constructs, this is a postorder traversal of the tree, ending at the root.
  • -tree
  • Prints OPs in a text approximation of a tree, with the root of the tree at the left and "left-to-right" order of children transformed into "top-to-bottom". Unsuitable for large programs.
  • -compact
  • Uses a tree format in which the minimum amount of space is used for the lines connecting nodes (one character in most cases).
  • -loose
  • Uses a tree format that uses longer edges to separate OP nodes. Default.
  • -vt
  • Uses tree-connecting characters drawn from the VT100 line-drawing set.
  • -ascii
  • Draws the tree with standard ASCII characters such as + and |. Default.
  • -main
  • Includes the main program in the output, even if subroutines were also specified.
  • -basen
  • Prints OP sequence numbers in base n, with n <= 62. The default is 36.
  • -bigendian
  • Prints sequence numbers with the most significant digit first. Default.
  • -littleendian
  • Prints sequence numbers with the least significant digit first.
  • -concise
  • Uses the author's favorite set of formatting conventions. Default.
  • -terse
  • Uses formatting conventions that emulate the output of B::Terse.
  • -linenoise
  • Uses formatting conventions in which the name of each OP, rather than written out in full, is represented by a one- or two-character abbreviation.
  • -debug
  • Uses formatting conventions reminiscient of B::Debug.
  • -env
  • Uses formatting conventions read from the environment variables B_CONCISE_FORMAT, B_CONCISE_GOTO_FORMAT, and B_CONCISE_TREE_FORMAT.