#!/usr/bin/perl
use strict;
BEGIN { $^W = 1 }
use Test::More;
use Sub::Uplevel;
plan tests => 3;
sub get_caller {
return caller(shift);
}
sub wrapper {
my $height = shift;
return uplevel 1, \&get_caller, $height;
}
{
my @caller = wrapper(0);
ok(scalar @caller, "caller(N) in stack returns list");
}
{
my @caller = wrapper(1);
is(scalar @caller, 0, "caller(N) out of stack returns empty list");
}
{
my @caller = caller;
is(scalar @caller, 0, "caller from main returns empty list");
}