Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Оператор выхода из программы




 

Оператор exit завершает выполнение программы, после чего управление возвращается операционной системе вместе со специальным кодом завершения. Обычно, если программа закончилась успешно, коду завершения присваивается значение 0, например:

 

exit 0;

Ненулевое значение коду завершения можно присвоить в случае тех или иных аварийных ситуаций в программе, например, отсутствует файл, из которого необходимо произвести чтение данных.

 

Списки и массивы

Списки

 

Множества объектов в Perl реализованы с помощью списков данных. Списки данных могут быть представлены тремя способами: с использованием простых списков, массивов и ассоциативных массивов.

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

Если список должен состоять только из обычных строк, можно обойтись без кавычек и запятых путем использования перед списком оператораqw. Каждый элемент может быть отделен от соседних элементов символом пробела, табуляторами или символом перевода строки.

Если слева от оператора присваивания находится больше переменных, чем справа, избыточные переменные получают значение undef. Если спра­ва больше элементов, чем слева, избыточные элементы справа игнорируются.

Для работы со списками литералов в Perl имеется оператор диапазона. В операторе диапазона задается верхняя и нижняя границы диапазона, разделенные парой точек "..". Для того чтобы в списке представить не­сколько диапазонов, используются несколько операторов диапазона, разделенные запятой. Оператор диапазона можно применять не только к числам, но и к строкам.

 

Инициализация массива

 

Для хранения списка в виде переменной используется массив. Признаком переменной, обозначающей массив, является начальный символ имени (префикс) "@". Имена переменных-массивов в Perl подчиняются тем же правилам, что и имена остальных переменных.

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

Для того, чтобы получить доступ к содержимому всего массива, надо использовать его имя в двойных кавычках.

 

Доступ к элементам массива

 

Доступ к отдельным элементам массива осуществляется посредством их ин­дексов. Индекс элементов массива, как и в других языках, производных от C, начинается с 0 и с каждым элементом увеличивается на 1.

Для доступа к определенному элементу используется следующий синтаксис:

 

 $имя-массива[индекс]

 

Язык Perl может оперировать с подгруппой внутри массива, которая называется сечением (slice).Сечение массива обозначается символом "@", свидетельствующим о том, что это группа элементов и квадратными скобками с перечислением индивидуальных элементов мас­сива (диапазоны индексов массива указывать нельзя). 

В языке Perl можно добавлять новые элементы к массиву при помощи присваивания значений. При этом размер массива автоматически увеличивается.

Часто требуется определить размер массива, или индекс его последнего элемента. Подобная задача возникает при добавлении или удалении элементов массива. В Perl для решения этой задачи предусмотрено несколько способов.

Первый способ – это использова­ние специальной переменной $#имя-массива. Она возвращает последний допустимый индекс массива. 

Другой способ нахождения размера массива – это использование имени массива в скалярном контексте (т.е. там, где в выражении ожидается скаляр), например:

 

$size=@boys;

Переменная $size теперь содержит количество элементов массива @boys.

При работе с массивами можно также использовать отрицательные индексы, которые соответствуют элементам, расположенным с конца массива.

Для выполнения операций над множеством элементов массива в Perl имеется оператор foreach, который имеет следующую форму:

 

имя переменной(список-или-массив)

       блок

 

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

 

Функции для работы с массивами

 

Язык Perl располагает набором функций для работы с массивами. Ниже в таблице приведены наиболее употребительные из этих функций:

 

Определение Действие
splice @ARRAY, OFFSET [, LENGTH [, LIST]] Удаляет LENGTH элементов из массива @array, начиная с элемента с ин­дексом OFFSET, и заменяет их элементами списка LIST. Возвращает уда­ленные элементы. Если количество удаляемых элементов LENGTH не ука­зано, удаляются все элементы, начиная с элемента OFFSET.
shift @ARRAY Осуществляет сдвиг элементов массива @ARRAY влево с отбрасыванием первого элемента. Возвращает значение удаленного первого элемента массива.
unshift @ARRAY, LIST Добавляет к началу массива @ARRAY список элементов LIST. Возвращает число элементов в новом массиве.
pop @ARRAY Удаляет последний элемент массива @ARRAY и возвращает его значение.
push @ARRAY, LIST Добавляет в конец массиваARRAY элементы из списка LIST.
sort @ARRAY Сортирует элементы массива @ARRAY и возвращает отсортированный мас­сив.
reverse @ARRAY Возвращает массив @ARRAY с элементами, расположенными в обратном порядке.
join EXPR, @ARRAY Объединяет в одну строку элементы массива @ARRAY, используя в качестве разделителя полей значение EXPR, и возвращает эту строку.
split /EXPR/, $STRING Преобразует строку $STRING в список, причем разделителем служит символ EXPR строки. Возвращает список значений. Если задан пустой символ-разделитель (//), строка будет преобразована в список посимвольно.

 

Ассоциативные массивы Perl

 

Ассоциативный массив или хэш-массив – это неупорядоченное множество пар скалярных величин «ключ-значение».

Как и массивы, хэши представляют собой коллекцию скаляров. Разница между ними состоит в том, что доступ к элемен­там хэша осуществляется по имени, а не с помощью числовых индексов, как в масси­вах. Элементы хэша состоят из двух частей – ключа и значения. Ключ идентифициру­ет элемент хэша, а значение содержит данные, связанные с этим ключом. Такая взаи­мосвязь описывается термином пара ключ-значение.

Примерами хэш-подобных структур данных являются: ин­вентарные книги, медицинские карточки, телефонные счета, дисковая файловая сис­тема, музыкальные коллекции на компакт-дисках, библиотечные каталоги и многое другое.

Поскольку хэш-массив представ­ляет собой неупорядоченное, а, значит, ненумерованное множество элемен­тов, то обращение к отдельному элементу осуществляется не через его ин­декс, которого нет, а через ключ, ассоциированный с этим элементом. Имя переменной, обозначающей хэш-массив, содержит в качестве префикса символ "%". Инициализацию хэш-массива можно выполнить, если задать список пар элементов "ключ", "значение", например:

 

%phones = ("123-45-67", "Саша", "765-43-21", "Петя",

"543-21-76", "Ира");

Для получения списка всех ключей или всех значений ассоциативного мас­сива можно использовать функции keys и values.

Для доступа к отдельному элементу хэш-массива необходимо задать имя элемента и значение ключа, например:

 

$search_name = %phones{"123-45-67"};

Часто нужно извлечь отдельный элемент хэш-массива не по ключу, а по его значению. Для этого существует специальный метод доступа, называемый инверсией хэша. Он заключается в том, что ключи и значения меняются местами, т.е. все ключи становятся значениями, а все значения становятся ключами, например:

 

%ByNames = reverse %phones;

Для проверки существования ключа в Perl есть специальная функция exists. Функция exists прове­ряет наличие указанного ключа в хэш-массиве и возвращает либо истинное значение (если ключ существует), либо ложное (в противном случае).

Другая операция – удаление ключей из хэш-массива. Для удаления одного ключа можно воспользоваться функцией delete.

 

Функции Perl

 

Практически все языки программирования содержат функции. Функция – это фрагмент кода, вызываемый по имени и возвращающий некоторое значение. Также практически все языки программирования имеют в своем составе так называемые встроенные функции.

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

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

 










Последнее изменение этой страницы: 2018-04-12; просмотров: 392.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...