Hello all !
I'm writing a command line interface, and ran into the following problem: Almost all commands in the CLI run directly or indirectly (function that call function that call function...) a function named
getParam(). My problem is that if the
getParam() fails I want to display an error message and return immediately to the prompt (the main loop of the CLI) without needing to return false from it to the calling funtion, check it's return value and so on until the main loop, it's quite ugly this way, for example:
sub getParam {
if ($someCondition) {
return 0
}
...
return 1;
}
sub execCommand {
...
if (! &func1()) {
return 0;
}
...
return 1;
}
sub func1 {
...
if (! &getParram()) {
return 0;
}
..
return 1;
}
# CLI main loop
while ($input = $term->readline("\n$prompt > %n", $TRUE)) {
&execCommand($input);
}
As you can see, in each function that calls
&getParam() (inderectly) I have to check the return value all the way up to the main loop.
Is there a way to avoid all the checks and return somehow immediatelly from
getParam() to the main loop (after the call to
execCommand())?
Thanks
Hotshot