Александр, Андрей, Евгений, Руслан, большое спасибо за объяснения! =)

8 июня 2010 г. 19:15 пользователь Ruslan Zakirov
<[email protected]> написал:
> 2010/6/8 Eugene Toropov <[email protected]>:
>> Кстати, вчера наткнулись на старый код, который в 5.8. еще работал, а в 5.10
>> уже нет:
>>
>> 5.8.8> perl -e 'use strict; my $a = [1, 2, 3]; print $...@$a}'
>> 2
>>
>> 5.10.1> perl -e "use strict; my $a = [1, 2, 3]; print $...@$a}"
>> Can't use string ("3") as an ARRAY ref while "strict refs" in use at -e line
>> 1.
>>
>> Сам я всегда использовал $#$a, если было нужно.
>
> И это правильно, что эквивалентно $#{$a}. Новое поведение тоже верно:
> $#{...} для получения аргумента задает скалярный контекст, а @$x в нем
> возвращает кол-во элементов. И это хорошо - стало более консистентно.
>
> --
> Best regards, Ruslan.
> --
> Moscow.pm mailing list
> [email protected] | http://moscow.pm.org
>
--
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить