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

Re: Two further features, one definitely needed for survival, otherlikely needed.

From:
=?UTF-8?Q?John_Ankarstr=c3=b6m?=
Date:
July 4, 2021 13:23
Subject:
Re: Two further features, one definitely needed for survival, otherlikely needed.
Message ID:
sbscoi$8bo$1@ciao.gmane.io
Den 2021-05-23 kl. 21:33 skrev L A Walsh:
> 2) Going 'unnecessary-sigil' optional.

You've clearly put some thought into this, and there's nothing on face
value that I would regard as impossible in your proposal.

That said, I don't see it ever being enabled by default in any version
of Perl for a couple of reasons:

   1. It feels "unperlish".

   2. It seems to admit that sigils were a bad idea from the beginning.
 I don't think everyone agrees about that.  I don't think I personally do.

   3. Many parts of Perl have been designed with the assumption that
variables have sigils.  For example, let's assume that Perl never had
sigils.  If that had been the case, I would doubt that lists would act
the way they do in Perl.

This

   x = (0, 0);
   y = 1;
   z = (x, y);  # z is (0, 0, 1)

just doesn't seem intuitive to me, and I suspect that it would trip up
most people, just like the UNIX shell's word splitting does.

Once you add sigils, however:

   @x = (0, 0);
   $y = 1;
   @z = (@x, $y);  # @z is (0, 0, 1)

... the intention is much more clear and the automatic list flattening
is no longer a foot gun; instead, it becomes a very useful feature.

In summary, sigils likely make a lot of useful Perl syntax possible --
syntax that would be hard to remove from Perl without transforming it
into an entirely different language.




nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About