> On 19 Sep 2017, at 13:04, Brandon Allbery <allber...@gmail.com> wrote:
> 
> On Tue, Sep 19, 2017 at 3:44 AM, Luca Ferrari <fluca1...@infinito.it> 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

Reply via email to