Создание серверных приложений на языке PERL

       

Список Массив Работа с массивом



Урок 8. Список. Массив. Работа с массивом

Список — это упорядоченные скалярные данные. Массив - переменная, которая содержит список. Каждый элемент массива — это отдельная скалярная переменная с независимым скалярным значением.

Массивы могут иметь любое число элементов. Минимально возможный массив не имеет элементов вообще, тогда как максимально возможный может заполнять всю наличную память.

Список состоит из значений, отделенных друг от друга запятыми и заключенными в круглые скобки. Эти значения образуют элементы списка.
(1,2,perl,3.14159) - список из 4-х значений.
Элементы списка не обязательно должны быть константами. Это могут быть выражения, которые вычисляются при каждом использовании списка. Например:
($a,$a**$b,$b+33) -список из 3-х элементов.

Список можно присвоить особому типу переменных - массиву. Такая переменная начинается с символа "@", а не "$" как обычная скалярная переменная. Обращение к элементам массива идет через индекс массива. Каждому элементу массива соответствует скалярная переменная с именем массива.
Пора Вам рассказать о том, что оператор print способен выводить не только скалярные данные, но и списки. Приведенная ниже программа демонстрирует работу с массивом.

#!/usr/bin/perl print "Content-Type: text/html\n\n"; @ar=(1,2,3); $ar[0]++; print @ar,"<BR>"; print $ar[0],$ar[1],$ar[2];

Первый элемент массива имеет индекс 0, значит последний - общее число элементов минус единица. Можно присвоить какой-нибудь скалярной переменной массив. В таком случае в переменную запишется кол-во элементов этого массива. При присваивании скалярной переменной списка, в неё записывается последний эл-т списка. Проверим:

#!/usr/bin/perl print "Content-Type: text/html\n\n"; @array=(0,2,4.5,Perl); $ar=@array; $ar1=(0,2,4.5,Perl); print @array,"<br>"; print $ar,"<br>"; print $ar1,"<br>"

Списки можно присваивать не только массивам и скалярам, но и, собственно, спискам. Если в левом списке эл-тов больше чем в правом, последние эл-ты этого списка уничтожаются. Если в левом списке эл-тов меньше чем в правом, часть эл-тов правого списка ничему не присвоится. В списки можно вкладывать и массивы:

#!/usr/bin/perl print "Content-Type: text/html\n\n"; $d="22"; @ar=(3,2,1); ($a,$b,$c,$d)=@ar; print ($a,$b,$c,$d,"<BR>"); @ar1=(@ar,"It works!"); print @ar1;

Если в качестве значения индекса массива указать список элементов, можно получить все их значения в виде списка. Такое использование называется срезом массива. Отрицательное значение индекса обозначает номер позиции элемента с конца:

#!/usr/bin/perl print "Content-Type: text/html\n\n"; @array=(1,2,3,4); print @array[0,-3];

Содержание раздела