Jos Boumans > Carp-Trace-0.12 > Carp::Trace



Annotate this POD (1)

View/Report Bugs
Module Version: 0.12   Source  


Carp::Trace - simple traceback of call stacks


    use Carp::Trace;

    sub flubber {
        die "You took this route to get here:\n" .


Carp::Trace provides an easy way to see the route your script took to get to a certain place. It uses simple caller calls to determine this.


trace( [DEPTH, OFFSET, ARGS] )

trace is a function, exported by default, that gives a simple traceback of how you got where you are. It returns a formatted string, ready to be sent to STDOUT or STDERR.

Optionally, you can provide a DEPTH argument, which tells trace to only go back so many levels. The OFFSET argument will tell trace to skip the first [OFFSET] layers up.

If you provide a true value for the ARGS parameter, the arguments passed to each callstack will be dumped using Data::Dumper. This might slow down your trace, but is very useful for debugging.

See also the "Global Variables" section.

trace is able to tell you the following things:

The output from the following code:

    use Carp::Trace;

    sub foo { bar() };
    sub bar { $x = baz() };
    sub baz { @y = zot() };
    sub zot { print trace() };

    eval 'foo(1)';

Might look something like this:

    main::(eval) [5]
        void - no new stash line 1
    main::foo [4]
        void - new stash
        (eval 1) line 1
    main::bar [3]
        void - new stash line 1
    main::baz [2]
        scalar - new stash line 1
    main::zot [1]
        list - new stash line 1

Global Variables ^


Sets the depth to be used by default for trace. Any depth argument to trace will override this setting.


Sets the offset to be used by default for trace. Any offset argument to trace will override this setting.


Sets a flag to indicate that a trace should dump all arguments for every call stack it's printing out. Any args argument to trace will override this setting.


This module by Jos Boumans <>.


This module is copyright (c) 2002 Jos Boumans <>. All rights reserved.

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

syntax highlighting: