Returns the context of the current subroutine call. In a scalar context, returns TRUE if there is a caller, that is, if we're in a subroutine or eval() or require() , and FALSE otherwise. In a list context, returns
With EXPR, it returns some extra information that the debugger uses to print a stack trace. The value of EXPR indicates how many call frames to go back before the current one.
Furthermore, when called from within the DB package, caller returns more detailed information: it sets sets the list variable @DB:args to be the arguments with which that subroutine was invoked.