Ссылки
Вы, возможно, заметили, что обе функции popup_menu() в предыдущем примере имеют весьма странные аргументы. Что означают [ 'пломбир', 'вишневое ', 'шоколадное' ] и [ 1. . 3 ] ? Квадратные скобки создают нечто такое, с чем Вы раньше не встречались: ссылку на анонимный массив . Это обусловлено тем, что функция popup_menu() в качестве аргумента рассчитывает получить именно ссылку на массив. Другой способ создания ссылки на массив — использовать перед именованным массивом обратную косую черту, например \@choices . Так, следующий фрагмент кода:
@choices = ('пломбир','вишневое','шоколадное');
print p("Сорт: ", popup_menu("flavor", \@choices));работает так же хорошо, как этот:
print p("Сорт: ", popup_menu("flavor",
['пломбир','вишневое','шоколадное']));Ссылки функционируют примерно так, как указатели в других языках, но с меньшей вероятностью появления ошибок. Они представляют собой значения, которые указывают на другие значения (или переменные). Ссылки Perl строго делятся на типы (без возможности приведения типов) и никогда не вызывают сбоев ядра операционной системы. Более того, если область памяти, на которую указывают ссылки, больше не используется, она автоматически возвращается в использование. Ссылки играют центральную роль в объектно-ориентированном программировании. Они применяются и в традиционном программировании, являясь основой для создания структур данных, более сложных, нежели простые одномерные массивы и хеши. Язык Perl поддерживает ссылки как на именованные, так и на анонимные скаляры, массивы, хеши и функции.
Так же, как методом \@массив можно создавать ссылки на именованные массивы и посредством указания [ список ] — на анонимные хеши, можно методом \%хеш создавать ссылки на именованные хеши, а методом { ключ1, значение1, ключ2, значение2, ... } — на анонимные.
<< Предыдущая страница Содержание Наверх Следующая страница >>
			
			
			
				2000,
				
					"Язык Perl. Создание CGI-скриптов на Perl."
				
				. Использованы материалы книг:
				Маслов
				В.В.
				Основы программирования на языке Perl
				- М.: Радио и связь, Горячая линия - Телеком. 1999. - 144 c.: - ISBN
				5-256-01356-4; Рэндал Шварц, Том Кристиансен
				
					Изучаем Perl
				
				: Пер. с англ. - К.:
				Издательская группа BHV, 1998 - 320 c.: - ISBN 5-7315-0031-2.
				
				Все пожелания - авторам:
				Алексею Машьянову
				,
				Александру Яковлеву
				.