Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
Devel::Backtrace::PoinUser Contributed Perl DocumentDevel::Backtrace::Point(3)

       Devel::Backtrace::Point - Object	oriented access	to the information
       caller()	provides

	   print Devel::Backtrace::Point->new([caller(0)])->to_long_string;

       This class is a nice way	to access all the information caller provides
       on a given level.  It is	used by	Devel::Backtrace, which	generates an
       array of	all trace points.

   $p->package,	$p->filename, $p->line,	$p->subroutine,	$p->hasargs,
       $p->wantarray, $p->evaltext, $p->is_require, $p->hints, $p->bitmask,
       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().  It's 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 doesn't react in

       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 caller information.

       Returns a string	of the form "Blah::subname called from main
       (".  This means that the subroutine "subname" from package
       "Blah" was called by package "main" in "" 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

       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 Devel::Backtrace.

       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 several lines.


	   package: main
	   filename: /tmp/
	   line: 6
	   subroutine: main::foo
	   hasargs: 1
	   wantarray: undef
	   evaltext: undef
	   is_require: undef
	   hints: 0
	   bitmask: \00\00\00\00\00\00\00\00\00\00\00\00

       hinthash	is not included	in the output, as it is	a hash.

       This constant contains a	list of	all the	available field	names.	The
       number of fields	depends	on your	perl version.


       Christoph Bussenius <>

       This Perl module	is in the public domain.

       If your country's law does not allow this module	being in the public
       domain or does not include the concept of public	domain,	you may	use
       the module under	the same terms as perl itself.

perl v5.32.1			  2009-01-27	    Devel::Backtrace::Point(3)


Want to link to this manual page? Use this URL:

home | help