Documentation for sub USAGE assembled from the following pages:
Language documentation: Command line interface §
(Command line interface) sub USAGE §
If no multi candidate of MAIN is found for the given command line parameters, the sub USAGE is called. If no such method is found, the compiler will output a default usage message.
#|(is it the answer)
multi MAIN(Int $i) { say $i == 42 ?? 'answer' !! 'dunno' } #|(divide two numbers) multi MAIN($a, $b){ say $a/$b } sub USAGE() { print Q:c:to/EOH/; Usage: {$*PROGRAM-NAME} [number] Prints the answer or 'dunno'. EOH }
multi MAIN(Int $i) { say $i == 42 ?? 'answer' !! 'dunno' } #|(divide two numbers) multi MAIN($a, $b){ say $a/$b } sub USAGE() { print Q:c:to/EOH/; Usage: {$*PROGRAM-NAME} [number] Prints the answer or 'dunno'. EOH }
The default usage message is available inside sub USAGE via the read-only $*USAGE variable. It will be generated based on available sub MAIN candidates and their parameters. As shown before, you can specify an additional extended description for each candidate using a #|(...) Pod block to set WHY.