Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Оператор выхода из программы
Оператор exit завершает выполнение программы, после чего управление возвращается операционной системе вместе со специальным кодом завершения. Обычно, если программа закончилась успешно, коду завершения присваивается значение 0, например:
exit 0; Ненулевое значение коду завершения можно присвоить в случае тех или иных аварийных ситуаций в программе, например, отсутствует файл, из которого необходимо произвести чтение данных.
Списки и массивы Списки
Множества объектов в Perl реализованы с помощью списков данных. Списки данных могут быть представлены тремя способами: с использованием простых списков, массивов и ассоциативных массивов. Список представляет собой последовательность имен скаляров, разделенных запятыми. Вся последовательность заключена в круглые скобки. Каждый отдельный скаляр называется элементом списка. Если список должен состоять только из обычных строк, можно обойтись без кавычек и запятых путем использования перед списком оператораqw. Каждый элемент может быть отделен от соседних элементов символом пробела, табуляторами или символом перевода строки. Если слева от оператора присваивания находится больше переменных, чем справа, избыточные переменные получают значение undef. Если справа больше элементов, чем слева, избыточные элементы справа игнорируются. Для работы со списками литералов в Perl имеется оператор диапазона. В операторе диапазона задается верхняя и нижняя границы диапазона, разделенные парой точек "..". Для того чтобы в списке представить несколько диапазонов, используются несколько операторов диапазона, разделенные запятой. Оператор диапазона можно применять не только к числам, но и к строкам.
Инициализация массива
Для хранения списка в виде переменной используется массив. Признаком переменной, обозначающей массив, является начальный символ имени (префикс) "@". Имена переменных-массивов в Perl подчиняются тем же правилам, что и имена остальных переменных. В отличие от других языков программирования, массив в Perl не нужно заранее объявлять и указывать его размерность. Создать новый массив и поместить в него элементы можно с помощью присвоения имени массива списку. Для того, чтобы получить доступ к содержимому всего массива, надо использовать его имя в двойных кавычках.
Доступ к элементам массива
Доступ к отдельным элементам массива осуществляется посредством их индексов. Индекс элементов массива, как и в других языках, производных от C, начинается с 0 и с каждым элементом увеличивается на 1. Для доступа к определенному элементу используется следующий синтаксис:
$имя-массива[индекс]
Язык Perl может оперировать с подгруппой внутри массива, которая называется сечением (slice).Сечение массива обозначается символом "@", свидетельствующим о том, что это группа элементов и квадратными скобками с перечислением индивидуальных элементов массива (диапазоны индексов массива указывать нельзя). В языке Perl можно добавлять новые элементы к массиву при помощи присваивания значений. При этом размер массива автоматически увеличивается. Часто требуется определить размер массива, или индекс его последнего элемента. Подобная задача возникает при добавлении или удалении элементов массива. В Perl для решения этой задачи предусмотрено несколько способов. Первый способ – это использование специальной переменной $#имя-массива. Она возвращает последний допустимый индекс массива. Другой способ нахождения размера массива – это использование имени массива в скалярном контексте (т.е. там, где в выражении ожидается скаляр), например:
$size=@boys; Переменная $size теперь содержит количество элементов массива @boys. При работе с массивами можно также использовать отрицательные индексы, которые соответствуют элементам, расположенным с конца массива. Для выполнения операций над множеством элементов массива в Perl имеется оператор foreach, который имеет следующую форму:
имя переменной(список-или-массив) блок
При выполнении этого оператора для каждого значения, принимаемого переменной имя-переменной из списка-или-массива, выполняется последовательность в блоке. Параметр список-или-массив может быть списком скалярных значений, разделенных запятыми, или переменной, представляющей массив.
Функции для работы с массивами
Язык Perl располагает набором функций для работы с массивами. Ниже в таблице приведены наиболее употребительные из этих функций:
Ассоциативные массивы 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 не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |