Как было сказано выше, массивы представляют собой переменные, принимающие в качестве значения список из скалярных величин. Следующий текст программы на языке Perl иллюстрирует объявление переменных типа массив и их инициализацию:
@ days = (‘ Sun ’,’ Mon ’,’ Tue ’,’ Wed ’,’ Thu ’,’ Fri ’,’ Sat ’);
print (@ days ); # выведет ‘ SunMonTueWedThuFriSat ’
print($days[4]); # выведет ‘Thu’
@weekdays = @days[1..5]; # значение (‘Mon’,’Tue’,’Wed’,’Thu’,’Fri’)
@ emptylist = (); # постой список
Ссылка на переменные типа «массив» обычно начинается со знака (@) и сопровождается значениями в квадратных скобках ([ ]). Как и в программировании на языке С, индексами массивов для скриптов всегда являются переменные целого типа, которые обычно начинаются с нулевого значения. Вы увидите исключения из этих двух правил в примерах, которые будут объясненены в этой главе.
Третье выражение ($ days [4]) служит примером массива, который ссылается на скалярное значение. Поскольку он содержит только один элемент, результирующее значение представляет собой скаляр. Если использовать знак ($) вместо знака (@), то скрипт будет ссылаться на скалярную величину. Это замечание является очень важным. Квадратные скобки указывают, что скрипт ссылается на массив. Знак $, в свою очередь, означает ссылку на скалярную величину.
Инициализация массива @ weekdays осуществляется путем выборки части массива @ days .
В предыдущем примере массив @ days использовался без индекса. Когда индекс опущен, Perl ссылается на весь массив. Аналогичным образом, в предыдущем примере массив @days инициализировался списком литералов. Кроме того, что массиву могут присваиваться в качестве значений литералы, скрипт может также присваивать массивам значения переменных или даже других массивов, как показано ниже:
@stuff = ($age, $name)
@FriendsOfMine = (‘Joe’,’Mary’, @FriendsOfYours);
В следующем примере используются части массивов:
@ weekend = @ days [0,6] ; # результат (‘ Sun ’,’ Sat ’)
print (@days[1..5,0,6]); # выведет ‘MonTueWedThuFriSunSat’
Если скрипт использует переменную типа массив в контексте скаляра, то значением служит число элементов массива. Скалярным контекстом является такой контекст, где только скалярные значения имеют смысл. Например, следующее выражение использует скалярный контекст для массива stuff для того, чтобы определить число элементов содержащееся в массив. Если число элементов, больше или равно 2, то скрипт выдает сообщение и заканчивает исполнение:
(@stuff >= 2) || die “Too much stuff! \ n ”;
Функция die служит директивой языку Perl закончить выполнение и выдать при этом указанное сообщение. Если сообщение не содержится, то функция просто заканчивает выполнение скрипта.
Perl также поддерживает специальную конструкцию $# переменная, которая возвращает последнее значение индекса в массиве. Например, следующее выражение for использует $[ для того, чтобы определить начальное значение индекса массива, и $# для определения последнего из элементов массива. При этом с помощью выражения for выводятся значения каждого из элементов:
for ($i =$[; $i <= $#stuff; $i++)
{
print $stuff[$i];
}
Записанный цикл for можно заменить следующим эквивалентным выражением:
Print @ stuff ;