В этой лекции рассмотрены списки - один из основных типов данных в Perl. Представлять данные в виде списков и массивов - очень естественно для Perl-программистов. А богатые средства работы со списками, массивами и срезами массивов, приведенные в этой лекции, предоставляют разработчику широкие возможности по обработке данных.
Цель лекции: познакомиться со списками и массивами, освоить возможности работы со списочными данными в Perl, включая встроенные функции и операции в списочном и скалярном контекстах.
Помимо уже изученных скалярных данных, в Perl широко применяется другой тип данных - списки. Если скаляры представляют в программе единичные объекты реального мира, то списки, как и в жизни, позволяют представить набор объектов, однотипных или совершенно разных, которые для решаемой задачи удобно рассматривать как единое целое (например, "список работников", "перечень документов", "опись товаров" и так далее). В то же время, всегда можно обратиться к любому элементу списка и обработать хранящуюся в нем информацию нужным образом, при необходимости повторяя действия для каждого элемента массива.
Итак, список - это упорядоченная последовательность отдельных скалярных данных в виде одного программного объекта. Способом представления значения списка в программе является списочный литерал, который записывается в виде последовательности значений, разделенных запятыми и заключенных в круглые скобки. Вот примеры списочных литералов:
(256, 512, 1024, 2048, 4096) # список из 5 чисел
('John', 'Paul', 'George', 'Ringo') # список из 4 строк
("Perl", 5.8) # список из строковых и числовых значений
Для записи списка текстовых строк, состоящих из одного слова, предусмотрена специальная форма списочного литерала, в которой после ключевого слова
qw(это очень удобно) # вместо ('это', 'очень', 'удобно')
qw/John Paul
George Ringo/ # список слов, расположенный на 2 строках
Элементами списочного литерала могут быть не только строки и числа, но также скалярные переменные и выражения. Пустой список не содержит элементов и представляется списочным литералом без значений (одними круглыми скобками).
('One', $x, $x+$y-$z, 2*5) # список литералов и выражений
() # пустой список
Списочный литерал может содержать операцию диапазона, которая записывается в виде двух скалярных значений, разделенных двумя точками:
начальное_значение .. конечное_значение
В списочном контексте эта операция возвращает список значений. Возвращаемый список начинается со значения левого операнда, которое в цикле увеличивается на единицу, пока не будет достигнуто значение правого операнда. Приведем примеры:
5 .. 10 # возвратит список (5, 6, 7, 8, 9, 10)
5.3 .. 7.1 # возвратит список (5.3, 6.3), т. к. 7.3 > 7.1
7 .. 5 # возвратит пустой список (), т. к. 5 < 7
$m .. $n # диапазон, заданный значениями от $m до $n
Если операция диапазона применяется к строкам, то значения списка генерируются по правилам операции автоинкремента. С ее помощью удобно записывать различные списочные литералы:
(-2 .. 2) # список чисел (-2, -1, 0, 1, 2)
(25, 53, 77 .. 79) # список (25, 53, 77, 78, 79)
('A'..'Z','a'..'z') # список заглавных и строчных букв
($start .. $finish) # список значений от $start до $finish
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии