И вот кстати:
perl -E "@arr=(1,(undef)x100,3); say @arr.length; say scalar @arr"
102
102


--
Павел

27 февраля 2017 г., 15:07 пользователь Павел Купцов <[email protected]>
написал:

> $ perl -E "@arr=(1, (undef) x 100, 3); say @arr.length"
> 102
> А что тут смущает?
> 1+100+1 = 102
>
>
> --
> Павел
>
> 27 февраля 2017 г., 14:53 пользователь Alessandro Gorohovski <
> [email protected]> написал:
>
>
>> 27 февраля 2017 г., 14:44 пользователь Павел Купцов via Moscow-pm <
>> [email protected]> написал:
>>
>>> 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
>>> [email protected] | http://moscow.pm.org
>>>
>>>
>>
>
-- 
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить