$self->{$method} = sub { my $self = shift; # etc }; ... sub AUTOLOAD { my ( $self, @args ) = @_; (my $method = $AUTOLOAD) =~ s/.*:://; if ( exists $self->{$method} ) { return $self->{$method}->(@args); } else { die "Not a method"; }