1use strict; 2use warnings; 3 4package Test::Tester::Delegate; 5 6use vars '$AUTOLOAD'; 7 8sub new 9{ 10 my $pkg = shift; 11 12 my $obj = shift; 13 my $self = bless {}, $pkg; 14 15 return $self; 16} 17 18sub AUTOLOAD 19{ 20 my ($sub) = $AUTOLOAD =~ /.*::(.*?)$/; 21 22 return if $sub eq "DESTROY"; 23 24 my $obj = $_[0]->{Object}; 25 26 my $ref = $obj->can($sub); 27 shift(@_); 28 unshift(@_, $obj); 29 goto &$ref; 30} 31 321; 33