1use lib qw(t/lib); 2use strict; 3use Test::More tests => 3; 4 5BEGIN { use_ok('Sub::Uplevel'); } 6 7sub get_caller_args { 8 package DB; 9 my @x = caller(1); 10 return @DB::args; 11} 12 13sub addition { 14 my $x; 15 $x += $_ for @_; 16 return $x; 17} 18 19sub wrap_addition { 20 my @args = get_caller_args(); 21 my $sum = uplevel 1, \&addition, @_; 22 return ($sum, @args); 23} 24 25my ($sum, @args) = wrap_addition(1, 2, 3); 26 27is($sum, 6, "wrapper returned value correct"); 28is_deeply( \@args, [1, 2, 3], "wrapper returned args correct" ); 29 30 31 32