2012/1/31 Alexandr Alexeev <[email protected]>: > 31 января 2012 г. 13:32 пользователь Василий Рябов <[email protected]> написал: > >> Заинтересовал 4 вопрос. >> Почему-то в переменную попадает значение последнего элемента списка. >> >> $ perl -MO=Deparse -e '$a = ( 1, 2, 3 )' >> $a = ('???', '???', 3); >> > Я не уверен на счет знаков вопроса, но последний элемент присваивается не > "почему-то", а потому что в перле списки всегда (ну или по крайней мере - с > давних пор) так себя вели и в camel book об этом говорится прямым текстом.
Мне кажется, это не поведение списка, а оператор запятая: "Binary "," is the comma operator. In scalar context it evaluates its left argument, throws that value away, then evaluates its right argument and returns that value. This is just like C's comma operator. In list context, it's just the list argument separator, and inserts both its arguments into the list. These arguments are also evaluated from left to right." --- http://perldoc.perl.org/perlop.html#Comma-Operator Т.е.: ($s) = (2, 8, 37); # список $s = (2, 8, 37); # запятая Поправьте, если ошибаюсь. -- maxim.vuets.name -- Moscow.pm mailing list [email protected] | http://moscow.pm.org
