Приглашаем посетить
Культура (cult-news.ru)

Массивы

Массивы

Как было сказано выше, массивы представляют собой переменные, принимающие в качестве значения список из скалярных величин. Следующий текст программы на языке 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 ;

Назад | Оглавление | Далее