use Tk::Submethods ( 'command1' => [qw(sub1 sub2 sub3)], 'command2' => [qw(sub1 sub2 sub3)]);
For each command/subcommand pair this creates a closure with command and subcommand as bound lexical variables and assigns a reference to this to a 'glob' in the callers package.
Someday the sub-commands may be created directly in the C code.