[Moscow.pm] int

Ruslan Zakirov ruz на bestpractical.com
Вт Июн 8 08:15:16 PDT 2010


2010/6/8 Eugene Toropov <jt на aaanet.ru>:
> Кстати, вчера наткнулись на старый код, который в 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