[Moscow.pm] Как узнать количество элементов в массиве?

Павел Купцов pavel на kuptsov.info
Пн Фев 27 04:07:00 PST 2017


$ perl -E "@arr=(1, (undef) x 100, 3); say @arr.length"
102
А что тут смущает?
1+100+1 = 102


--
Павел

27 февраля 2017 г., 14:53 пользователь Alessandro Gorohovski <
an.gorohovski на gmail.com> написал:

>
> 27 февраля 2017 г., 14:44 пользователь Павел Купцов via Moscow-pm <
> moscow-pm на pm.org> написал:
>
>> v5.18.2
>>
>> perl -E "@arr=(1,2,3); say @arr.length"
>>
>> 3
>>
>
> Спасибо. Шикарно :)
>
> Правда,
> $ perl -E "@arr=(1, (undef) x 100, 3); say @arr.length"
> 102
>
>
>>
>> --
>> Павел
>>
>>>
>>>
>>> Нет речь не о привычке, перл мне как раз
>>> более привычен чем другие языки.
>>> Но логичный, читаемый вариант это не
>>> scalar @array
>>> а
>>> length @array
>>> потому что первый вариант требует
>>> знать и помнить что делает массив в
>>> скалярном контексте (как и знания
>>> концепции контекстов перла), а второй
>>> вариант не требует ничего кроме знания
>>> английского языка.
>>> Конечно опытный перловик не
>>> испытывает с этим никаких проблем,
>>> потому что привык, да вот только нет
>>> ничего хорошего в том что язык вместо
>>> очевидного решения предлагает
>>> привычное.
>>>
>>>
>>> Конец Дайджест списка рассылки Moscow-pm; том 112, выпуск 6
>>> ************************************************************
>>> ***********************************
>>>
>>
>>
>> --
>> Moscow.pm mailing list
>> moscow-pm на pm.org | http://moscow.pm.org
>>
>>
>
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20170227/2a947beb/attachment-0001.html>


Подробная информация о списке рассылки Moscow-pm