The Perl Toolchain Summit 2025 Needs You: You can help 🙏 Learn more

Synopsis:

deparse [address options] [0xOP-address | . ]

deparse [B::DeparseTree-options] {filename | subroutine}

In the first form with an OP address, "," or no arguments, deparse around where the program is currently stopped. If "dump" or "tree" is given we show lower-level output from B::DeparseTree::Print. In the former case, just for the opcode and in the later case for the deparsed tree.

In the second form with a function or filename, B::DeparseTree shows information for that file or function.

B::DeparseTree options:

-t | --tree Show full optree
-l | --line Add '# line' comment
--offsets show all offsets
-a | --address Add 'OP addresses in '# line' comment
-f | --function Set function to look up offset
-p | --parent <n> Show parent text to level <n>
-q | --quote Expand double-quoted strings
-d | --debug Show debug information
-h | --help run 'help deparse' (this text)

Deparse Perl source code using B::DeparseTree.

Without arguments, deparses the current statement, if we can.

Examples:

deparse # deparse current statement
deparse -a # deparse current statement showing
# line and OP address
deparse 0xcafebabe # decode an opcode address.
deparse @0xcafebabe # same as above
deparse file.pm
deparse -l file.pm

See also:

list, and B::DeparseTree for more information on deparse options.