use PadWalker 'peek_sub'; my $sub = \&Net::SMTP::Server::Client2::get_message; my $cmds = peek_sub($sub)->{'%_cmds'}; $cmds->{$_} = __PACKAGE__->can($_) || $cmds->{$_} for keys %$cmds;