NAME
    Devel::Trace - Print out each line before it is executed (like `sh -x')

SYNOPSIS
      perl -d:Trace program


DESCRIPTION
    If you run your program with `perl -d:Trace program', this module will
    print a message to standard error just before each line is executed. For
    example, if your program looks like this:

            #!/usr/bin/perl
            
            
            print "Statement 1 at line 4\n";
            print "Statement 2 at line 5\n";
            print "Call to sub x returns ", &x(), " at line 6.\n";
            
            exit 0;
            
            
            sub x {
              print "In sub x at line 12.\n";
              return 13;
            }


    Then the `Trace' output will look like this:

            >> ./test:4: print "Statement 1 at line 4\n";
            >> ./test:5: print "Statement 2 at line 5\n";
            >> ./test:6: print "Call to sub x returns ", &x(), " at line 6.\n";
            >> ./test:12:   print "In sub x at line 12.\n";
            >> ./test:13:   return 13;
            >> ./test:8: exit 0;


    This is something like the shell's `-x' option.

DETAILS
    Inside your program, you can enable and disable tracing by doing

        $Devel::Trace::TRACE = 1;   # Enable
        $Devel::Trace::TRACE = 0;   # Disable


    or

        Devel::Trace::trace('on');  # Enable
        Devel::Trace::trace('off'); # Disable


    `Devel::Trace' exports the `trace' function if you ask it to:

        import Devel::Trace 'trace';


    Then if you want you just say

        trace 'on';                 # Enable
        trace 'off';                # Disable


TODO
    *   You should be able to send the trace output to the filehandle of your
        choice.

    *   You should be able to specify the format of the output.

    *   You should be able to get the output into a string.


    We'll see.

Author
    Mark-Jason Dominus (`mjd-perl-trace+@plover.com'), Plover Systems co.

    See the `Devel::Trace.pm' Page at http://www.plover.com/~mjd/perl/Trace
    for news and upgrades.

