Perlのcallerの書き方

こんにちわ。Perl弱者で有名なkenjiskywalkerです!
みんなPerl書いてますか?

Perlのcallerの使い方を知ったのでメモしておきますね。

my @caller = caller 0;

caller 0 <- この 0 って何。
caller(0) って意味であって、つまりは
caller(EXPR)[n]であって

#!/usr/bin/perl

use strict;
use warnings;

use Data::Dumper;

sub hoge {

my @caller = caller 0;

# 0 = hoge
# 1 = hogehoge
# 2 = hogehogehoge

print "[0] = $caller[0]\n";
print "[1] = $caller[1]\n";
print "[2] = $caller[2]\n";
print "[3] = $caller[3]\n";

}

sub hogehoge{

&hoge();

}

sub hogehogehoge{

&hogehoge();

}

&hogehogehoge();

こういうことですね。深さ?を意味してるんですね。
わかれば簡単なんですけど辿り着くまでに時間かかりました。