caller#
Synopsis#
my $package = caller; # scalar: package name
my ($pkg, $file, $line) = caller; # list: basic triple
my ($pkg, $file, $line, $sub, ...) = caller(0);
my @info = caller(1); # caller's caller
Description#
Returns information about the calling subroutine’s context.
In scalar context, returns the package name of the calling subroutine. In list context, returns a multi-element list with (at minimum) package, filename, and line number. When called with a numeric argument N, returns information about the Nth stack frame above the current subroutine:
Index |
Field |
|---|---|
0 |
package name |
1 |
filename |
2 |
line number |
3 |
subroutine |
4 |
hasargs |
5 |
wantarray |
Returns undef (scalar) or an empty list if the requested stack
depth exceeds the actual call depth. caller(0) returns info
from call_stack.last() (the current sub’s frame); caller(1)
looks one frame further up.
When the op has WANT bits set to 0 (unknown), the context is
inherited from the enclosing call frame, matching perl5 behavior.
See also#
die, warn, caller