$ 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

Ответить