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

Ответить