caller [n]
Returns information about the stack of current subroutine calls. Without an argument, it returns the package name in a scalar context, and in a list context, it returns the package name, filename, and line number that the currently executing subroutine was called from:
With an argument it evaluates n as the number of stack frames to go back before the current one. It also reports some additional information that the debugger uses to print a stack trace:($package, $filename, $line) = caller;
Furthermore, when called from within the DB package,$i = 0; while (($pack, $file, $line, $subname, $hasargs, $wantarray, $evaltext, $is_require) = caller($i++)) { ... }
caller
returns more detailed information: it sets the list
variable @DB::args
to be the argument passed in the given stack frame.