caller EXPR caller |
返回关于当前子程序调用者的信息。在标量上下文中,返回调用者的包名称或调用者的包名EXPR执行步骤。
在列表上下文中,指定不带任何参数,调用者者返回包的名称,该文件的文件名和行内当前子程序的调用者。
如果EXPR指定,调用者返回扩展信息的调用者EXPR执行步骤。也就是说,调用时的参数1,当前子程序调用者(上级),它返回的信息,带2时,当前子程序的调用者(上上级)的调用者,等等
失败返回undef
不带参数调用时为基本信息
调用时参数的扩展信息
不带参数调用时返回的信息:
($package, $filename, $line) = caller;
调用带参数时,返回的信息:
($package, $filename, $line, $subroutine, $hasargs, $wantarray, $evaltext, $is_require) = caller($i); #by www.gitbook.net
只返回$evaltext和$is_require的值当子程序被检查实际上是一个eval()语句的结果。