PERL: БИБЛИОТЕКА ПРОГРАММИСТА


PERL: БИБЛИОТЕКА ПРОГРАММИСТА - стр. 115


материальной Вселенной, обладающие внутренним порядком.

И потому, не веря в высшую ценность искусства,

я все же верю в Искусство ради Искусства.

Э. М. Фостер

Введение

Если попросить вас перечислить содержимое своих карманов, назвать имена трех последних президентов или объяснить, как пройти к нужному месту, в любом случае получится список: вы называете объекты один за другим в определенном порядке. Списки являются частью нашего мировоззрения. Мощные примитивы Perl для работы со списками и массивами помогают преобразовать мировоззрение в программный код.

Термины список (list) n массив (array) трактуются в этой главе в соответствии с канонами Perl. Например, ("Reagan' , "Bush", "Clinton") — это список трех по­следних американских президентов. Чтобы сохранить его в переменной, восполь­зуйтесь массивом: @рresidents = ("Reagan", "Bush", "Clinton"). Каждый из этих терминов относится к упорядоченной совокупности скалярных величин; отличие состоит в том, что массив представляет собой именованную переменную, размер которой можно непосредственно изменить, а список является скорее отвлеченным понятием. Можно рассматривать массив как переменную, а список — как содер­жащиеся в пей значения.

Отличие может показаться надуманным, но операции, изменяющие размер этой совокупности (например, push или pop), работают с массивом, а не списком. Нечто похожее происходит с $а и 4: в программе можно написать $а++, но не 4++. Анало­гично, рор(@а) — допустимо, а рор(1, 2,3)— нет.

Главное — помнить, что списки и массивы в Perl представляют собой упорядо­ченные совокупности скалярных величин. Операторы и функции, работающие со списками и массивами, обеспечивают более быстрый или удобный доступ к элементам по сравнению с ручным извлечением. Поскольку размер массива из­меняется не так уж часто, термины «массив» и «список» обычно можно считать синонимами.


4.1. Определение списка в программе   115

Вложенные списки не создаются простым вложением скобок. В Perl следую­щие строки эквивалентны:




- Начало -  - Назад -  - Вперед -