in reply to
Re^2: Perl5 Language Extension: Definedness-Triggered Shortcut Operators
in thread RFC: Perl5 Language Extension: Definedness-Triggered Shortcut Operators
Opinions stating that it was bad to have such operators at all seem to be very rare.
There's always the fact that "adding features means more complexity of the implemenation, and hence more work on maintenance". Since this is an opinion carried forward by the handful of people that actually do significant maintenance work, this opinion carries a lot of weight.
The "safe arrow" operator in particular has got a lot of support, though its symbol is not quite settled yet.
But it wasn't hung just on syntax. And noone cared enough to restart the discussion. Which, to me, seems it's not an itch that bothers a lot of people.
The double-slash symbol seems to have made it because of high demand for expressions with default values and it being the syntax proposed by Larry Wall for Perl 6.
Right. So.... what's your argument to have an :||
Low-precedence defined-or was initially called "err", but its naming was later challenged. Larry himself did not like "dor" either, and he pointed out that "orelse", which is what "err" evolved into in Perl 6, has different semantics now that would not easily fit into Perl 5.
5.9.x had err
for sometime (as the low priority version of //
). It was decided it was better not to have it. What makes you think the time is right now, and what are your arguments that the concerns of a few years ago aren't concerns anymore?
My primary concerns, i.e. the usefulness of short-cutting expression evaluation and the intent to provide more general solutions than an isolated exotic operator, don't seem to have played a major role in the discussion lately.
I don't think there's much disagreement that having more features in the language has a value. But unless said value exceeds the costs it's not going to happen. And even if the value exceeds the costs, someone has to do the work first. Perlmonks is wrong forum to discuss this. Of course, 99.9% of the people here will say "Good idea. When can I have it"? Go pitch your idea on p5p.
Has the new syntax been illegal before, so that old code is not likely to get hurt?
That rules out any
named operator like err
-- unless you make them weak keywords or enable them using features.