develooper Front page | perl.perl5.porters | Postings from August 2021

Re: RFC? pre-RFC? Return of the Jedi^W err/dor

Thread Previous | Thread Next
Tobias Boege via perl5-porters
August 17, 2021 19:07
Re: RFC? pre-RFC? Return of the Jedi^W err/dor
Message ID:
On Tue, 17 Aug 2021, Arne Johannessen wrote:
> H.Merijn Brand wrote on 11 August:
> > 
> > Consistency.  Essentially, when // was introduced, the low-level
> > operator was forgotten.
> > 
> > In my life as perl user I have never ever needed or used xor, but I
> > have used err while it was defined many many times. It is about making
> > easy (but ugly) things even easier and more consistent.
> Considering
>     defined $foo or next;
> and
>     $foo dor next;
> the former seems much more clean and readable to me. `dor` or `dand` aren't terms that are really established anywhere AFAIK (unlike `xor`, which has been around forever). And `err` is misleading. However, the following doesn't assign the value of $foo; you'd need `dor` or `//` for that:
>     my $bar = defined $foo or next;
> So `dor` does add some small value to Perl. I just don't much like the name. I'm wondering if the operator could be named `definedor` instead, or if perhaps the following construct (which is currently a compile error) should be treated specially:
>     my $bar = $foo defined or next;

FWIW, the name for the "dor" operator in Raku is "orelse", which at least
to me sounds good and reminds me somewhat of the implicit ternary that is
behind the dor:

  defined($foo) ? $foo : $bar
          $foo    orelse $bar


"There's an old saying: Don't change anything... ever!" -- Mr. Monk

Thread Previous | Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About