package Wrapobj; our $VERSION = 1.000; use Scalar::Util "blessed"; use mro; sub import { my $en = caller; my $ens = $en . "::"; my $ep = \%{(do { no strict "refs"; $ens })}; my($_u, $o) = @_; my $c = blessed($o) || $o; for my $n (@{mro::get_linear_isa($c)}) { my $p = \%{(do { no strict "refs"; $n . "::" })}; for my $s (sort keys %$p) { if (exists(&{$$p{$s}})) { if (!$$ep{$s} || !exists(&{$$ep{$s}})) { *{$ens . $s} = sub { $o->${\$s}(@_) }; } } } } } 1; __END__