{ package Object::MethodChain; AUTOLOAD { my $s = shift; my $c = ref($s) || $s; my $p = ref($s) ? $s : sub { $_[0] }; our $AUTOLOAD =~ /.*::(.*)/s or die; my $m = $1; my $a = \@_; bless sub { &$p($_[0])->$m(@$a); }, $c; } DESTROY { } }