Devel::Caller(3pm)
NAME
Devel::Caller - meatier versions of "caller"
SYNOPSIS
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'
DESCRIPTION
- 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.
BUGS
All of these routines are susceptible to the same limitations as
"caller" as described in "caller" in perlfunc
The deparsing of the optree perfomed by called_with is fairly simpleminded and so a bit flaky.
- o 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.
SEE ALSO
"caller" in perlfunc, PadWalker, Devel::Peek
AUTHOR
Richard Clamp <richardc@unixbeard.net> with close reference to
PadWalker by Robin Houston
COPYRIGHT
- Copyright (c) 2002, 2003, 2006, 2007, 2008, 2010 Richard Clamp. All
Rights Reserved. This module is free software. It may be used,
redistributed and/or modified under the same terms as Perl itself.