Perl caller 函数
-
描述
caller 函数返回有关当前子例程调用程序的信息。在标量上下文中,返回调用者的程序包名称或调用者EXPR升级的程序包名称。在列表上下文中,未指定任何参数,调用者将为当前子例程的调用者返回包名,文件名和文件中的行。如果指定了EXPR,调用者将返回扩展信息,以使呼叫者EXPR逐步升级。也就是说,当使用参数1进行调用时,它将返回当前子例程的调用者(父)的信息,使用2将当前子例程的调用者(祖父母)的调用者返回,依此类推。 -
句法
以下是此函数的简单语法-caller EXPR caller
-
返回值
此函数在失败时返回undef,在不带参数的情况下调用时返回基本信息,在带参数的情况下返回扩展信息。 -
示例
以下是显示其基本用法的示例代码 -
尝试一下# Function definition sub Hello { print "Hello, World!\n"; @array = caller 0; $size = @array; for($i=0;$i<$size;$i++){ print "The calling info is ", @array[$i], "\n"; } } # Function call Hello();
执行结果:Hello, World! The calling info is main The calling info is Tmp5f6eb7cfa45a01601091535.pl The calling info is 13 The calling info is main::Hello The calling info is 1 The calling info is The calling info is The calling info is The calling info is 256 The calling info is The calling info is