Михаил Шохирев - Язык программирования Perl
- Название:Язык программирования Perl
- Автор:
- Жанр:
- Издательство:Интернет-университет информационных технологий - ИНТУИТ.ру
- Год:2006
- Город:M.
- ISBN:5-94774-604-2
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Михаил Шохирев - Язык программирования Perl краткое содержание
Курс знакомит с языком программирования Perl, с его принципами, основными возможностями и особенностями в объёме, достаточном, чтобы начать разрабатывать прикладные и системные задачи, включая программирование для сети Интернет.
Расчитанный на полугодовое изучение, курс является достаточно подробным введением в язык программирования Perl. Описывается уникальная культура Perl и особенности, отличающие его от других языков программирования и во многом обусловившие его популярность. Рассматриваются основные средства программирования на языке Perl версии 5.8. Разбираются богатые возможности языка для создания самых разных приложений, а также особый стиль программирования на Perl. Курс ориентирован на студентов, начинающих программистов или разработчиков, применяющих другие языки и желающих писать прикладные или системные программы на Perl.
Язык программирования Perl - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
@result = grep /$pattern/, @source; # отобрать элементы
С помощью функции map можно применить операцию замены в соответствии с регулярным выражением ко всем элементам массива, например:
@hrefs = ('http://regex.info', 'http://regexp.ru'); map s{http://}{}, @hrefs; # убрать 'http://' из ссылок
Регулярные выражения дают программисту новый взгляд на текстовые данные: вместо отдельных символов и простых подстрок он начинает мыслить обобщенными шаблонами, что помогает ему находить более простые и эффективные решения. В таблице 8.1для справки приведены основные обозначения, применяемые для записи регулярных выражений в Perl. Дополнительные сведения о регулярных выражениях можно почерпнуть из стандартной документации по Perl и перевода уникальной книги Джеффри Фридла "Регулярные выражения".
Таблица 8.1. Основные обозначения для записи регулярных выраженийОбозначение | Описание | Примеры |
---|---|---|
// | ограничители регулярного выражения по умолчанию | /$pattern/ |
\ | отмена специального значения следующего символа | m{C:\\windows} |
() | группировка шаблонов или сохранение значения | /(\w\w\w)+/ |
| | выбор из нескольких альтернатив | /кошелек|жизнь/ |
[] | класс символов: любой символ из перечисленных | /[0-9a-fA-F]/ |
[^] | инвертированный класс символов: любой символ, кроме перечисленных | /[^0-9]/ |
Метасимволы | ||
. | любой символ, кроме \n (соответствует любому символу, включая \n с модификатором /s) | /(.+)/ |
\d | десятичная цифра | m{Время=\d+ сек} |
\D | не десятичная цифра | /(\D*)\d+/ |
\w | алфавитно-цифровой знак | /\s+\w+\s+/ |
\W | не алфавитно-цифровой знак | /\W\W\W/ |
\s | пробельный символ | s/\s+/ / |
\S | любой символ, кроме пробельного | /\S+/ |
Утверждения | ||
^ | начало строки (соответствует началу каждой строки с модификатором /m) | /^\w+/ |
$ | конец строки (соответствует концу каждой строки с модификатором /m) | /\d+$/ |
\b | граница слова (между \w и \W или \W и \w) | /stop\b/ |
\B | любая позиция, кроме границы слова | /stop\B/ |
\A | только начало строки, даже с модификатором /m | /\A[#]/ |
\z | только конец строки, даже с модификатором /m | /\w+\z/ |
\Z | только конец строки или перед \n в конце строки, даже с модификатором /m | /\w+\Z/ |
\G | позиция в строке, равная значению функции pos() | |
Escape-последовательности | ||
\t \n \r \f \a \b | управляющие символы: \b в классе символов выступает как символ Backspace (0x08), вне его - как граница слова | /[\a\b\f\r\n\t]/ |
\0 \x \c \N | коды символов | /\033\x1F\cZ/ /\x{263a}/ |
\l \L \u \U \Q \E | преобразующие последовательности | /\Q$pattern\E/ |
Квантификаторы | ||
* *? | любое число повторений, включая 0 (максимальный и минимальный квантификаторы) | /\s*/ /\S*?/ |
+ +? | одно и более повторений (максимальный и минимальный квантификаторы) | /\d+/ /\D+?/ |
? ?? | ноль или одно повторение (максимальный и минимальный квантификаторы) | /.?/ /[.a-z]??/ |
{n} {n}? | ровно n повторений (максимальный и минимальный квантификаторы) | /\w{8}/ /\w{5}?/ |
{n,} {n,}? | n и более повторений (максимальный и минимальный квантификаторы) | /\d{2,}/ /\d{5,}?/ |
{n,m} {n,m}? | от n до m повторений включительно (максимальный и минимальный квантификаторы) | /[A-Z]{1,12}/ /[a-z]{0,3}?/ |
Из этой лекции вы узнали о регулярных выражениях далеко не все, но достаточно, чтобы начать свободно пользоваться ими. По мере накопления опыта применения языка Perl, регулярные выражения станут вашим привычным и надежным инструментом. И тогда задачи, при другом подходе требующие много времени и больших усилий, с помощью регулярных выражений будут решаться быстро, элегантно и эффективно.
Лекция 9. Средства ввода-вывода
В этой лекции разбирается организация ввода-вывода данных в Perl. Рассмотрены средства работы с каталогами, файлами и содержимым файлов. Материалы этой лекции позволят вам писать полноценные программы, "общающиеся с внешним миром".
Цель лекции: познакомиться с возможностями подсистемы ввода-вывода в Perl и освоить основные приемы чтения и записи внешних данных, а также научиться работать со средствами манипулирования файлами и каталогами.
Система ввода-вывода Perl основана на принципах, заложенных в системе Unix и распространившихся на все современные операционные системы. Одним из основных понятий работы в программе с внешними данными являются потоки ввода-вывода. В программе обращение к потоку ввода-вывода производится через файловый манипулятор (file handle), иногда неправильно называемый дескриптором файла. При запуске любой программы автоматически открывается три потока: стандартный ввод (stdin), стандартный вывод (stdout) и стандартный протокол (stderr). Поток стандартного ввода в диалоговой операционной среде связывается с клавиатурной, а потоки стандартного вывода и стандартного протокола - с дисплейной частью консоли операционной системы. Со стандартными потоками в Perl связываются три предопределенных файловых манипулятора: соответственно STDIN , STDOUT и STDERR . Связывание имени файла с пользовательским файловым манипулятором в программе выполняется с помощью операции open() , открывающей поток обмена данными с указанным файлом. Требования надежности рекомендуют обязательно проверять все операции ввода-вывода на успешное завершение. Поэтому в случае возникновения ошибки при открытии файла программа обычно аварийно завершается с помощью функции die(), которая может выводить диагностическое сообщение в стандартный поток протокола. Например, так открывается файл и создается файловый манипулятор FILE_HANDLE :
# открыть для чтения файл по имени, взятом из $file_name open(FILE_HANDLE, $file_name) # или аварийно завершить программу с выдачей сообщения or die("Ошибка открытия файла $file_name: $!\n"); #
В случае успешного открытия файла функция open() помещает в свой первый аргумент готовый к использованию файловый манипулятор. Имя файлового манипулятора записывается без разыменовывающего префикса и по традиции выделяется заглавными буквами. Рекомендуется при открытии файла сохранять файловый манипулятор в скалярной переменной, что позволяет локализовать файловый манипулятор для использования только в текущем блоке или подпрограмме. Кроме того, скалярную переменную с файловым манипулятором можно удобно передавать в подпрограммы для выполнения в них операций ввода-вывода. Итак, вот предпочтительный способ открытия файла:
open my $file_handle, $file_name or die "Ошибка открытия файла $file_name: $!\n";
(Как и при вызове других функций в Perl, если не возникает неоднозначности, программист решает, заключать аргументы функций в круглые скобки или нет. Среди пишущих на Perl широко распространен стиль программирования без использования круглых скобок.)
Читать дальшеИнтервал:
Закладка: