package My::Expect; use Expect; sub new { my $class = shift; my $expect = Expect->new(@_); bless { expect => $expect }, $class; } sub login { ... } sub enable { ... } sub cmd { ... } sub AUTOLOAD { my $method_name = $AUTOLOAD; $method_name =~ s/.*:://; my $sub = sub { shift->{expect}->$method_name(@_) } { no strict 'refs'; *$method_name = $sub; } goto &$sub; }