caller [n]

Returns information about the stack of current subroutine calls. Without an argument, it returns the package name in a scalar context; in a list context, it returns the package name, filename, and line number from which the currently executing subroutine was called:

($package, $filename, $line) = caller;

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:

$i = 0;
while (($pack, $file, $line, $subname, $hasargs, 
        $wantarray, $evaltext, $is_require) = caller($i++)) {

Furthermore, when called from within the DB package, caller returns more detailed information: it sets the list variable @DB::args as the argument passed in the given stack frame.

Get Perl in a Nutshell, 2nd Edition now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.