in reply to Re^2: Right place to put common execute code in App::Cmd
in thread Right place to put common execute code in App::Cmd
"I really hoped that there is another callback which I haven't found."
The relevant code is App::Cmd::execute_command. As you can see, nothing happens between validate_args and execute that you could possibly hook onto.
One alternative approach could be to subclass App::Cmd, overriding that method with your own implementation that adds extra hooks between validate_args and execute:
{ package My::App::Cmd; use base 'App::Cmd'; sub execute_command { my ($self, $cmd, $opt, @args) = @_; local our $active_cmd = $cmd; $cmd->validate_args($opt, \@args); $cmd->before_execute($opt, \@args); $cmd->execute($opt, \@args); } }
Then use My::App::Cmd instead of App::Cmd.
|
|---|