caller 方法

        caller caller EXPR

这个函数返回关于当前子过程调用等方面的堆栈信息。如果没有参数,它返回包名,文件名,和调用当前子过程的程序的行号:

   ($package, $filename, $line) = caller;
如果带参数调用,caller 把 EXPR 算做从当前的堆栈位置向回退的桢数。比如,参数 0 意思是当前堆栈桢,1 意思是该调用者,2 意思是调用者的调用者,以此类推。
#!/usr/bin/perl
use strict;
use warnings;
sub b{
    my $x=(caller(0))[3];
        print "\nIn subroutine $x\n";
        print "\nThe result of caller 0:\n";
    print join "\n", caller 0;
        print "\nThe result of caller 1:\n";
    print join "\n", caller 1;
}

sub a{
    my $x=(caller(0))[3];
        print "\nIn subroutine $x\n";
        print "\nThe result of caller 0:\n";
    print join "\n", caller 0;
        print "\nThe result of caller 1:\n";
    print join "\n", caller 1;
        &b;
}
&a;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值