Parse command-line arguments: Difference between revisions

Content added Content deleted
m (syntax highlighting fixup automation)
m (→‎{{header|Raku}}: Undo bizarre single space indent that somebody found necessary to do)
Line 834: Line 834:
(formerly Perl 6)
(formerly Perl 6)
At the end of running any top-level code (which can preprocess the arguments if it likes), Raku automatically examines any remaining arguments and transforms them into a call to a <tt>MAIN</tt> routine, if one is defined. The arguments are parsed based on the signature of the routine, so that options are mapped to named arguments.
At the end of running any top-level code (which can preprocess the arguments if it likes), Raku automatically examines any remaining arguments and transforms them into a call to a <tt>MAIN</tt> routine, if one is defined. The arguments are parsed based on the signature of the routine, so that options are mapped to named arguments.
<syntaxhighlight lang="raku" line>
<syntaxhighlight lang="raku" line>sub MAIN (Bool :$b, Str :$s = '', Int :$n = 0, *@rest) {
sub MAIN (Bool :$b, Str :$s = '', Int :$n = 0, *@rest) {
say "Bool: $b";
say "Bool: $b";
say "Str: $s";
say "Str: $s";
say "Num: $n";
say "Num: $n";
say "Rest: @rest[]";
say "Rest: @rest[]";
}</syntaxhighlight>
}
</syntaxhighlight>
{{out}}
{{out}}
<pre>$ ./main -h
<pre>$ ./main -h