The "workaround" is well documented: https://docs.raku.org/language/create-cli#%*SUB-MAIN-OPTS
It's just a matter of setting named-anywhere option in the %*SUB-MAIN-OPTS hash, which you will also need to create. There's an example in that doc page. Kevin. On Tue, 11 Feb 2020 at 20:07, WFB <wolfgang.banas...@gmail.com> wrote: > Interesting stuff. > I would like to take the change and ask one question: > One thing, I had to get used to is the MAIN handling of parameters. > On the command line it is important to write then named parameter in front > of the positional ones: > MAIN('compile', :$verbose, :$test-only) > needs to write: > builder.raku --verbose compile > Its not possible to write > builder.raku compile --verbose. > That is not intuitive, at least for me because that breaks with the other > unix command line tools and is annoying if you have to change the script > call several times. > > Why is that so? And is there a workaround for that? > Thanks > Wolfgang > > On Mon, 10 Feb 2020 at 12:18, Timo Paulssen <t...@wakelift.de> wrote: > >> Hi Paul and Todd, >> >> just a little extra info: the limitation for nameds to come after >> positionals is only for declarations of signatures. >> >> Usage of subs/methods as well as capture literals (which you don't use >> often, i imagine, so feel free to disregard) allow you to mix nameds and >> positionals freely; it will handle named parameters that are put between >> positionals as if they were after the positional parameters. >> >> > sub abcdefg($b, $f, $g, :$a, :$c, :$e) { say $a, $b, $c, $e } >> &abcdefg >> > abcdefg(1, a => 5, 2, c => 99, 100, e => 1024) >> 51991024 >> >> Most cases where I wanted named parameters early in the call was when >> there was something big in the call, for example if a sub takes a block and >> a few options, i prefer to put the options before the block, so they are >> visible at a glance rather than after scrolling. I suppose this mirrors how >> regex modifiers (like :ignorecase / :i, :global, etc) have been moved to >> the front of regexes. >> >> Hope that's interesting >> - Timo >> On 10/02/2020 07:48, Paul Procacci wrote: >> >> Named parameters must come after all positional parameters. >> Your example subroutine is invalid for this reason, while the following >> would be fine: >> >> sub abcdefg( $b, $f, $g, :$a, :$c, :$e) >> >> abcdefg("position1", "position2", "position3", :e("named_e"), >> :a("named_a"), :c("named_c")); >> >> >> >> On Sun, Feb 9, 2020 at 6:24 PM ToddAndMargo via perl6-users < >> perl6-us...@perl.org> wrote: >> >>> On 2020-02-09 14:53, Paul Procacci wrote: >>> > subchdir(IO() $path, :$d=True, :$r, :$w, :$x-->IO::Path:D) >>> >>> Hi Paul, >>> >>> What I wanted to see is how something liek >>> >>> sub abcdefg( :$a, $b, :$c, :$e, $f, $g ) >>> >>> would be called >>> >>> -T >>> >> >> >> -- >> __________________ >> >> :(){ :|:& };: >> >>