Поиск

Структуры и ссылки

Материал этого занятия может быть интересен тем, кто только начал изучать программирование и для кого Perl — первый язык программирования. В большинстве языков предусмотрены средства, с помощью которых можно из одной области памяти сослаться на данные, находящиеся в другой области памяти. В одних языках программирования (Pascal и С) эти средства называются указателями (pointers), в других (ассемблер) — косвенными ссылками (indirect references), а в BASIC или Java, например, подобные средства вообще не предусмотрены. Поэтому, если раньше вы никогда не пользовались ссылками, указателями или косвенными ссылками, внимательно несколько раз прочтите вступительный раздел данного занятия, поскольку он очень труден для восприятия.

В Perl также предусмотрены подобные средства, которые называются ссылками (references). Ссылки в Perl используются для разных целей, однако на данном занятии мы сосредоточим свое внимание на вызовах функций, которым передается несколько аргументов сложных типов, а также на том, как можно создать сложный тип данных, например список списков.

Ссылку можно сравнить со старым библиотечным каталогом. Каждой бумажной карточке в каталоге соответствует книга на одной из полок библиотеки. В карточке указывается, к какой категории относится книга (художественная литература, техническая, справочник) и где она расположена в библиотеке. В некоторых библиотечных каталогах можно найти несколько ссылок на одну и ту же книгу, которая относится к разным категориям, а иногда можно даже найти ссылку из одной карточки на другую (типа см. также...).

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

А теперь, вооружившись теорией, внимательно прочтите несколько следующих страниц. Итак, пока у вас ясная голова, на этом занятии мы рассмотрим следующие темы.

  • Основные сведения о ссылках.
  • Создание структур данных из ссылок.
  • Короткий пример, который поможет понять материал.