Vincent Pit


B::RecDeparse - Deparse recursively into subroutines.


Version 0.10


    # Deparse recursively a Perl one-liner :
    $ perl -MO=RecDeparse,deparse,@B__Deparse_opts,level,-1 -e '...'

    # Or a complete Perl script :
    $ perl -MO=RecDeparse,deparse,@B__Deparse_opts,level,-1

    # Or a single code reference :
    use B::RecDeparse;

    my $brd = B::RecDeparse->new(
     deparse => \@B__Deparse_opts,
     level   => $level,
    my $code = $brd->coderef2text(sub { ... });


This module extends B::Deparse by making it recursively replace subroutine calls encountered when deparsing.

Please refer to B::Deparse documentation for what to do and how to do it. Besides the constructor syntax, everything should work the same for the two modules.



    my $brd = B::RecDeparse->new(
     deparse => \@B__Deparse_opts,
     level   => $level,

The B::RecDeparse object constructor. You can specify the underlying B::Deparse constructor arguments by passing a string or an array reference as the value of the deparse key. The level option expects an integer that specifies how many levels of recursions are allowed : -1 means infinite while 0 means none and match B::Deparse behaviour.

The following functions and methods from B::Deparse are reimplemented by this module :

  • compile

  • init

  • deparse_sub

  • pp_entersub

  • pp_refgen

  • pp_srefgen

  • pp_gv

Otherwise, B::RecDeparse inherits all methods from B::Deparse.


An object-oriented module shouldn't export any function, and so does this one.


perl 5.8.1.

Carp (standard since perl 5), Config (since perl 5.00307) and B::Deparse (since perl 5.005).


Vincent Pit, <perl at>,

You can contact me by mail or on (vincent).


Please report any bugs or feature requests to bug-b-recdeparse at, or through the web interface at I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.


You can find documentation for this module with the perldoc command.

    perldoc B::RecDeparse

Tests code coverage report is available at


Copyright 2008,2009,2010,2011,2013,2014,2015 Vincent Pit, all rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.