develooper Front page | perl.perl5.porters | Postings from July 2013

Re: postfix dereference syntax

Thread Previous | Thread Next
Aristotle Pagaltzis
July 3, 2013 21:37
Re: postfix dereference syntax
Message ID:
* David Golden <> [2013-07-03 22:00]:
> I meant in general, not suggesting that implementation of this or any
> other feature should be decomposed into "on" and "off" pieces.  The
> fact that "no multidimensional" exists already is sort of a side issue
> to the point I was making.
> "use feature 'foo'" is a "turn on this syntax" option.  Those are
> orthogonal -- they make an illegal syntax legal.  Likewise, "no
> indirect" is a "turn off this syntax" option -- it makes a legal
> syntax into an error.  Whereas "use dots" is a "change the meaning of
> this legal syntax to something else" option.
> Generally, I think the p5p approach has been to deprecated (and then
> remove) unwanted syntax to make it available for other use.
> I see a trend (recent? not sure) of people advocating "dialect"
> pragmas -- when we can't just deprecate an old syntax, some people who
> prefer something else would rather just replace it lexically.
> That's what I mean is a broader design decision than any one feature.
> Do we want "dialects" of Perl 5 or not?  It's a way out of the
> back-compatibility box [ironic to say, given your post about it], but
> I think it comes at a cost that we shouldn't trivialize.

My game plan would be not `use dots` but `use feature 'postderef'` and
have it enabled by `use 5.20` or whichever. You can then either use
faux-multidim hashes or postfix deref, but not both, and when you’re
writing new code then it’s clear which one p5p would prefer you to use.
Then some time down the road we can start the process of deprecating
multidim hashes altogether, which is where I’d like this to go.

I’m not interested in a dialect.

But these faux-multidim hashes have been an advertised feature of Perl
forever, and I expect the deprecation to run afoul of plenty of legacy
Perl. Not mountains, but not insignificant, and stuff that doesn’t get
touched much, i.e. precisely the kind of code that requires the longest
deprecation phases. So I’d prefer the leeway to make this deprecation
a long one.

Which means that if we were to postpone postfix deref until the syntax
is actually really safely free, who knows if it’ll be non-experimental
by 5.30.

I’m not interested in waiting that long.

So I’m fine with a dialect-like state in the meantime, in a realpolitik
kind of way. We’re talking about faux-multidim hashes anyway, not the
arrow op that appears on something like every second line of Perl code.
Some dialects are more… dialectical than others.

Aristotle Pagaltzis // <>

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