Связь и интернет Архив Программирование
   
Сделать стартовойСделать закладку            
   ПОИСК  
   
Главная / Perl / Для начинающих /
8  Perl
8  PHP
8  JavaScript
8  HTML
8  DHTML
8  XML
8  CSS
8  C / C++
8  Pascal и Delphi
8  Турбо Ассемблер
8  MySQL
8  CASE-технологии
8  Алгоритмы
8  Python
8  Обратная связь
8  Гостевая книга
Новости о мире


Работа с массивами - Программирование от RIN.RU
Работа с массивами

Как известно, массив представляет собой структуру данных, содержащую одно или несколько значений величин одного типа, например, 100 имен студентов. Perl содержит несколько встроенных функций, которые помогают работать с элементами массива. В следующих разделах рассматривается несколько основных функций для обработки массивов.


Функции PUSH И POP


Скрипты языка Perl используют фикции push и pop для того, чтобы добавлять и удалять элементы с конца массива. Иными словами, функции push и pop позволяют скриптам выполнять операции состеком по принципу: последним вошел, первым вышел. Функция push имеет следующий формат:


push(@ARRAY, LIST);


Следующий фрагмент иллюстрирует использование функции push:


@list = ();
push(@list,10,20); # @list теперь (10,20)
push(@list,1..3); # @list теперь (10,20,1,2,3)


В противоположность этому функция pop удаляет элемент, который был вставлен в стек последним и возвращает значение этогоэлемента. Функция pop имеет следующий формат:


$value = pop(@ARRAY);


Следующий фрагмент программы иллюстрирует использование функции pop:


# Возьмём @list из предыдущего примера
print pop(@list); # Выведет 3
print pop(@list); # Выведет 2
# Теперь @list (10,20)


Функция SHIFT


Функция shift удаляет и возвращает элемент из начала массива. Эта функция аналогична функции pop с тем только отличием, что работает от начала массива по принципу FIFO (<первым вошел, первым вышел>). Функция shift имеет следующий формат:


$value = shift(@ARRAY);


Следующий фрагмент программы иллюстрирует использование функции shift:


# Возьмём @list из предыдущего примера


print shift(@list); # Выведет 10
print shift(@list); # Выведет 20
# Теперь @list ()


Функция UNSHIFT


Функция unshift добавляет один или больше элементов к началу массива. Она имеет следующий код:


unshift(@Array, List);


Следующий фрагмент программы иллюстрирует использование функции unshift:


# @list = ()
unshift(@list,5,10,20); # @list (5,10,20)
unshift(@list, 1..3); # @list (1,2,3,5,10,20)


Функция SPLICE


Скрипты языка Perl используют функцию splice для того, чтобы извлекать элементы из списка, заменяя их элементами другого списка. Она имеет следующий формат:


splice(@Array, Offset[, Count[, List]]);


Функция splice извлекает указанное число элементов {Count) из массива (@Аrraу), начиная с элемента, на который указывает величина сдвига (Offset), и заменяет элементы элементами другого списка (List). Если в вызове функции не указан параметр Count, функция извлекает элементы до самого конца массива. Если в вызове функции не указан список, элементами которого замещаются исходные элементы, то функция не добавляет никаких элементов к первоначальному списку. Следующее выражение иллюстрирует использование функции splice:


@list = 1..10;
splice(@list,1,8,5,6); # @list = (1,5,6,10)


Функция SCALAR


Функция scalar определяет число элементов в списке. Она имеет следующий формат:


Rsult = scalar(List);


Обычно скрипты языка Perl не нуждаются в использовании функции scalar применительно к массивам, потому что когда скрипт обращается к массиву, записывая его в скалярном контексте, то он получает в качестве возвращаемой величины число элементов массива. Тем не менее, скрипты могут использовать функцию scalar вслучаях, когда контекст является неоднозначным или если список неявляется массивом. Следующее выражение иллюстрирует использование функции scalar.


@list = 1..10;
print scalar(@list); # Выведет размер @list


Функция GREP


Функция grep фильтрует элементы списка, для которых заданное выражение принимает значение <ложно>. Она имеет следующийформат:


@list = grep(Expression, List);


Функция grep просматривает элементы списка, подставляя их вкачестве аргумента в заданное выражение. Функция grep присваивает текущее выражение элемента списка переменной $_ и вычисляет заданное выражение. Если полученное выражение является истинным,то функция grep добавляет этот элемент к результирующему списку. Следующий фрагмент программы иллюстрирует использование функции grep:


@list = grep($_ & 1, 1..10); # @list (1,3,5,7,9)
@list = ("a", "" "b"); # @list ("a"," ","b")
@list = grep($_ eq "", @list); # @list ("a","b")


Примечание: Если выражение, модифицирует переменную. $_, то исходный список также будет модифицирован.




 8  Комментарии к статье  8 8  Обсудить в чате

8  В тему

Встроенные функции

Установка PERL

Использование отладчика PERL

Типы данных в PERL

Переменные

Операторы PERL

Конструкции языка PERL

Подпрограммы

Обработка строк

Обработка списков

Функции обработки ассоциативных массивов

Файловый ввод и вывод

Обработка бинарных данных

Работа с каталогами

Форматированный вывод

Регулярные выражения

CGI-скрипты при помощи PERL

 
  
  
    Copyright ©  RIN 2003 - 2004      * Обратная связь