Вопросы и ответы

При попытке распечатать список списков с помощью оператора print “@LOL” выводятся значения типа ARRAY(0xl01210), ARRAY(Oxl014Q0) и т.д. Почему это происходит?


В случае обычного массива оператор print @array выводит на печать его элементы, разделенные пробелом. Оператор print “@LOL” работает точно так же — он распечатывает элементы массива @L0L, которые являются ссылками на другие массивы. Чтобы распечатать элементы каждого из массивов, на который указывают элементы массива @LOL, воспользуйтесь методикой, описанной выше в разделе “Список списков, или двумерный массив” этого занятия.


Я пытаюсь создать ссылку на список с помощью оператора $ref=($a, $Ь, $с). Почему в результате в переменной $ref оказывается ссылка на скаляр, а не на список?


В Perl конструкция {$а, $Ь, $с) является сокращенной записью списка ($а, $Ь, $с)! Поэтому в переменной $ref окажется ссылка на последний элемент списка, находящийся в круглых скобках, т.е. $с. А чтобы создать ссылку на анонимный массив, воспользуйтесь оператором $ref=[$a, $b, $c].

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: