> On 19 Sep 2017, at 13:04, Brandon Allbery <[email protected]> wrote:
>
> On Tue, Sep 19, 2017 at 3:44 AM, Luca Ferrari <[email protected]> wrote:
> this will sound trivial, but the following piece of code that in my
> mind should work does not:
>
> $mode = 'csv' if ( ! $mode.defined || %available_modes{ $mode }:!exists );
>
> and the compiler says:
>
> You can't adverb &infix:<||>
>
> You want the adverb to be on the postcircumfix; parenthesize the expression.
> IIRC this was considered the least bad alternative out of an ambiguous parse
> (i.e. which operation does the adverb apply to?).
>
> $mode = 'csv' if ( ! $mode.defined || (%available_modes{ $mode }:!exists)
> );
Or use the lower precedence βorβ instead of β||β:
$mode = 'csv' if ( ! $mode.defined or %available_modes{ $mode }:!exists );
Liz