CW$p->package, CW$p->filename, CW$p->line, CW$p->subroutine, CW$p->hasargs, CW$p->wantarray, CW$p->evaltext, CW$p->is_require, CW$p->hints, CW$p->bitmask, CW$p->hinthash
See caller in perlfunc for documentation of these fields.
hinthash is only available in perl 5.9 and higher. When this module is loaded,
it tests how many values caller returns. Depending on the result, it adds the
necessary accessors. Thus, you should be able to find out if your perl
supports hinthash by using can in UNIVERSAL:
This is the level given to new(). Its intended to be the parameter that was
given to caller().
This returns the package that $p->subroutine is in.
If $p->subroutine does not contain ::, then (unknown) is returned. This is
the case if $p->subroutine is (eval).
You may also access the fields by their index in the list that caller()
returns. This may be useful if some future perl version introduces a new field
for caller, and the author of this module doesnt react in time.
This constructs a Devel::Backtrace object. The argument must be a reference to
an array holding the return values of caller(). This array must have either
three or ten elements (or eleven if hinthash is supported) (see
caller in perlfunc).
Optional additional parameters:
-format => formatstring,
-level => $i
The format string will be used as a default for to_string().
The level should be the parameter that was given to caller() to obtain the
Returns a string of the form Blah::subname called from main (foo.pl:17).
This means that the subroutine subname from package Blah was called by
package main in foo.pl line 17.
If you print a Devel::Backtrace::Point object or otherwise treat it as a
string, to_string() will be called automatically due to overloading.
Optional parameters: -format => formatstring
The format string changes the appearance of the return value. It can contain
%p (package), %c (called_package), %f (filename), %l (line), %s
(subroutine), %a (hasargs), %e (evaltext), %r (is_require), %h
(hints), %b (bitmask), %i (level), %I (level, see below).
The difference between %i and %I is that the former is the argument to
caller() while the latter is actually the index in $backtrace->points(). %i
and %I are different if -start, skipme() or skipmysubs() is used in
If no format string is given, the one passed to new will be used. If none
was given to new, the format string defaults to default, which is an
abbreviation for %s called from %p (%f:%l).
Format strings have been added in Devel-Backtrace-0.10.
This returns a string which lists all available fields in a table that spans
hinthash is not included in the output, as it is a hash.