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

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

From:
Christian Walde
Date:
July 5, 2021 01:53
Subject:
Re: Two further features, one definitely needed for survival, otherlikely needed.
Message ID:
op.051bjmf1ydyjqt@xenbox.cihq
I think it's a good idea to respect this:

On Mon, 24 May 2021 09:54:01 +0200, Nicholas Clark <nick@ccl4.org> wrote:

> Thanks for thinking this through, and writing a clear explanation.
>So, "removing sigils" has been discussed and is not feasible
>It is not happening. No more mails about it.
>Nicholas Clark

-- 
With regards,
Christian Walde

On Sun, 04 Jul 2021 19:17:39 +0200, Philip R Brenan <philiprbrenan@gmail.com> wrote:

>   no sigils;
>   x = (0, 0);
>   y = 1;
>   z = (x, y);  # z is (0, 0, 1)
>
>> Your sigil free version is much easier to understand!
>
>
>> On Sun, Jul 4, 2021 at 2:23 PM John Ankarström <john@ankarstrom.se> wrote:
>> 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