package Foo; sub foo1 { ... } sub foo2 { ... } # etc 1; package Wrapper; use Foo; use vars qw/ $AUTOLOAD /; sub AUTOLOAD { my $subname = $AUTOLOAD; $subname =~ s/.*:://; if( UNIVERSAL::can( 'Foo', $subname ) ) { print LOG "Foo::$subname called\n"; return eval "Foo::$subname( \@_ )"; } else { croak "No such sub: $AUTOLOAD"; } }