Devel::Caller(3pm)

Devel::Caller3pm

Meatier versions of "caller"

Usage

 use Devel::Caller qw(caller_cv);
 $foo = sub { print "huzzah\n" if $foo == caller_cv(0) };
 $foo->();  # prints huzzah
 use Devel::Caller qw(called_with);
 sub foo { print called_with(0,1); }
 foo( my @foo ); # should print '@foo'

Overview

caller_cv($level)

"caller_cv" gives you the coderef of the subroutine being invoked at the call frame indicated by the value of $level

caller_args($level)

Returns the arguments passed into the caller at level $level

caller_vars( $level, $names ) =item called_with($level, $names)

"called_with" returns a list of references to the original arguments to the subroutine at $level. if $names is true, the names of the variables will be returned instead

constants are returned as "undef" in both cases

called_as_method($level)

"called_as_method" returns true if the subroutine at $level was called as a method.

Releases

9 releases since Debian 5.0 (Lenny); the text changed 8 times.

  1. 5.0
  2. 6.0
  3. 7
  4. 8
  5. 9
  6. 10
  7. 11
  8. 12
  9. 13

Bugs

All of these routines are susceptible to the same limitations as "caller" as described in "caller" in perlfunc

The deparsing of the optree performed by called_with is fairly simple-minded and so a bit flaky.

•

As a version 2.0 of Devel::Caller we no longer maintain compatibility with versions of perl earlier than 5.8.2. Older versions continue to be available from CPAN and backpan.

Author

Richard Clamp <[email protected]> with close reference to PadWalker by Robin Houston

From libdevel-caller-perl 2.07-1+b3 in Debian 13 (Trixie). Parsed by carta from the page's man source.