Регулярные выражения Perl и их применение


   замена элеменетов no frost мастер по ремонту холодильников.        

Регулярные выражения Perl и их применение

Если на компьютере у читателя еще не установлена система программирования Perl, то самое время это сделать. Дистрибутив Perl под Windows можно скачать с сайта. Это все дается бесплатно. Поставка осуществляется в дистрибутиве MSI (MicroSoft Installer). Вы можете запустить его, найдя этот файл через "Мой компьютер" и дважды щелкнув на нем. Также можно использовать инсталлятор msiexec.exe, находящийся в подкаталоге system32 каталога Windows. Если запустить его без параметров, он в окне выдаст справку на русском языке.
Регулярные выражения обычно используются как операнды операторов поиска m/…/ и замены s/…/…/. Слово регулярные означает "составленные по правилам". То, что стоит вместо многоточия в операторе m и вместо первого многоточия в операторе s, - это и есть регулярное выражение. Буква m означает match (соответствие), а буква s означает search (поиск).

Общее знакомство с регулярными выражениями
Предположим, в программе проверяется ввод пользователя, чтобы выяснить, хочет ли он завершить программу, введя слова stop, quit, exit или abort. Без регулярных выражений вам пришлось бы использовать ряд сравнений с этими образцами, предварительно преобразовав ввод к нижнему регистру. С оператором m эта проверка делается просто: if ($input =~ m/stop|quit|exit|abort/i) { exit }

Альтернативные шаблоны
Модификаторы и якоря
Классы символов
Классы символов - 2
Квантификаторы, их "жадность" и ее ограничение
Захватывающие и незахватывающие скобки
Захватывающие и незахватывающие скобки - 2
Захватывающие и незахватывающие скобки - 3
Обратные ссылки
Оператор замены

Текущая позиция поиска
Если с текущей начальной позиции в тексте совпадение не будет обнаружено, то в дело вступает механизм смещения текущей позиции поиска: состояние шаблона и позиция поиска в шаблоне будут сброшены в начальное состояние, а текущая позиция в тексте будет продвинута на один символ. После этого начнется новая итерация поиска совпадения. (Но если шаблон привязан к началу текста якорем \A или ^, то в случае неудачи второй итерации не будет, ведь в этом случае шаблон должен совпасть только в начале текста и нигде больше.)

Возвраты и сохраненные состояния
Механизм работы - Поиск с возвратами
Механизм работы - Поиск с возвратами - 2
Атомарная группировка
Атомарная группировка - 2
Текущая позиция поиска
Возвраты и сохраненные состояния
Возвраты и сохраненные состояния - 2
Возвраты и сохраненные состояния - 3
Возвраты и сохраненные состояния - 4

Комментарии в регулярных выражениях
Регулярные выражения могут быть очень громоздкими и сложными, и разработчики предусмотрели возможность создания в них комментариев, так же, как и в текстах программ. Для этого есть два варианта. В первом, более простом варианте, вы можете использовать специальные скобки (?# комментарий ). Эта конструкция игнорируется. Комментарий не может содержать закрывающую круглую скобку, т.к. по ее наличию определяется, где заканчивается конструкция комментария.

Группировка элементов шаблона
Группировка элементов шаблона - 2
Опережающая проверка
Ретроспективная проверка
Ретроспективная проверка - 2
Встроенный код Perl
Условная конструкция
Условная конструкция - 2
Условная конструкция - 3
Задание модификаторов регулярного выражения

Модификаторы операторов m// и s///
Всего в регулярных выражениях используется восемь модификаторов. i - игнорирует различие между заглавными и строчными буквами. На этот модификатор влияет установка локали.s - метасимвол "точка" совпадает со всеми символами, включая символ новой строки \n.m - разрешает привязку метасимволам ^ и $ к промежуточным символам \n в тексте. В этом случае метасимвол ^ совпадает не только в начале текста, как якорь \A, но и после каждого символа \n, который не стоит в самом конце текста.

Алгоритм работы операторов m// и s///
Оператор m// в режиме однократного поиска
Оператор m// в режиме однократного поиска - 2
Оператор m// в списковом контексте без g
Оператор m// в скалярном контексте с g
m// в списковом контексте с модификатором g
Работа оператор s/// с модификатором g и без него
Предварительная обработка регулярных выражений
Модификаторы операторов m// и s///
Алгоритм работы операторов m// и s///

Поиск отдельных слов
В регулярных выражениях словом называется последовательность символов \w. В множество \w входят все строчные и прописные латинские буквы, десятичные цифры и знак подчерка: [a zA Z0 9_]. К этому множеству относятся все символы, считающиеся буквами в той локальной установке, которая используется. Для ActiveState Perl под Windows для этого достаточно написать директиву use locale; и все русские буквы (включая буквы ё и Ё) в кодировке Windows-1251 также будут считаться буквами.

Поиск нечувствительных к регистру совпадений
Привязка к началу и концу строк и текста
Поиск множественных совпадений
Поиск n-ного совпадения
Замена n-го совпадения
Замена n-го совпадения - 2
Замена n-го совпадения - 3
Применение якорей, проверки текста
Как укоротить длинные URL и длинные слова?
Как укоротить длинные URL и длинные слова? - 2

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

Якорь \G, его смысл и использование
Якорь \G, его смысл и использование - 2
Запрет сброса позиции \G модификатором c
Предварительная настройка начальной позици
Лексический анализ текста с помощью якоря \G
Лексический анализ текста с помощью якоря \G - 2
Предотвращение зацикливания при поиске
Предотвращение зацикливания при поиске - 2
Якорь \G, его смысл и использование
Якорь \G, его смысл и использование - 2

Интерполяция переменных и кода в строку
Интерполяция в строку простого скаляра: "Text $name text". Если нет разделителя после имени переменной, то это имя надо взять в фигурные скобки: "Text ${name}text". Интерполяция в строку переменной с индексами (элемента массива): "Text $name[1] text" или "Text $name[$ind] text". Аналогично происходит интерполяция элемента массива массивов: my @a=([1,2],[3,4]); $_="aaa$a[1][0]aaa"; print $_;

Интерполяция скаляра
Интерполяция массива
Интерполяция вызова подпрограммы
Интерполяция кода Perl
Интерполяция переменных и кода
Экранирование метасимволов выражений
Экранирование метасимволов выражений - 2
Интерполяция переменных и кода в строку
Интерполяция скаляра
Интерполяция массива

Преобразование ftp и http ссылок в теги HTML
Может быть и так, что ссылка не отделена пробелом от окружающих слов или после нее идет знак препинания (точка, запятая и т.д.) Желательно, чтобы регулярное выражение это учитывало и не включало такой знак в ссылку. И конечно, оно не должно совпадать там, где ему совпадать не следует. Неплохо было бы, если бы оно также форматировало текст ссылки href: протокол, домен и субдомены должны быть записаны строчными буквами. А сам текст, который будет виден на странице, должен оставаться таким, каким его ввел участник форума.

Преобразование ftp, http и e-mail ссылок в теги HTML
Пример 1
Пример 1
Пример 2
Пример 2
Пример 3
Пример 3
Пример 4
Пример 4
Преобразование ftp и http ссылок в теги HTML

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

Встроенный код и интеллектуализация поиска
Встроенный код и интеллектуализация поиска - 2
Встроенный код и поиск вложенных конструкций
Встроенный код и поиск вложенных конструкций - 2
Встроенный код и директивы my и local
Встроенный код и директивы my и local - 2
Встроенный код и оптимизация выражений
Встроенный код и интеллектуализация поиска
Встроенный код и интеллектуализация поиска - 2
Встроенный код и поиск вложенных конструкций

Оператор qr/…/
Наряду с операторами q/…/, qq/…/ и qx/…/ в Perl существует оператор qr/…/. Он получает в качестве операнда регулярное выражение, транслирует его и запоминает в переменной, которой присваивается результат. Например: $_='123abcd'; my $re=qr/((\d+)\w+)/; /$re/; print "$1 $2"; Будет напечатано bcd 123

Оператор qr/…/ и интерполяция переменных
Оператор qr/…/ и интерполяция переменных - 2
Оператор qr/…/ и модификаторы
Объекты регулярных выражений и квантификаторы
Ограничители в операторе qr/…/
qr/…/ и проблемы при использовании o
Применение объктов регулярных выражений
Пример 1
Пример 1
Пример 2

Концепция динамической видимости переменных
В языках программирования существуют глобальные и закрытые (private) переменные, которые объявляются директивой my (…). В Perl специальные глобальные переменные, такие, как $_, $1, @ARGV, не объявляются и доступны из любой точки программы. Если вы не используете директиву use strict (или use strict 'vars') и объявляете в программе переменные ($a и т.д.), то эти переменные будут глобальными для данного пакета. Если вы употребили директиву use strict, вы должны будете объявлять эти переменные директивой our.

Концепция динамической видимости переменных
Специальные переменные, изменяемые при поиске
Автоматическая локализация спец переменных
Имитация именованного сохранения
Избавление от "вредных" специальных переменных
Концепция динамической видимости переменных
Специальные переменные, изменяемые при поиске
Автоматическая локализация
Имитация именованного сохранения
Предварительное копирование текста

Примеры применения динамических регулярных выражений
Для начала приведу простой и немного искусственный пример: пусть нам надо проверить правильность строки Далее стоит 13 нулей: 0000000000000 Причем, число нулей может быть произвольным от 1 и более, например, Далее стоит 2 нуля: 00 Нам надо составить регулярное выражение, которое проверяет, что число соответствует количеству нарисованных нуликов.

Примеры применения динамических выражений
Поиск вложенных конструкций
Поиск вложенных конструкций - 2
Примеры применения
Примеры применения - 2
Поиск вложенных конструкций
Поиск вложенных конструкций - 2
Поиск вложенных конструкций - 3

Компиляция и кэширование регулярных выражений
Отыскивается завершающий ограничитель регулярного выражения и читаются модификаторы всего регулярного выражения, которые стоят за этим ограничителем. Наличие модифиатора x учитывается при обработке литерала регулярного выражения.Если регулярное выражение имеет интерполируемые переменные, то вместо них подставляется их значение. При этом учитывается, что последовательности символов $|, $), … не являются переменными и не интерполируются.

Отладочная информация регулярных выражений
Функция study
Хронометраж времени выполнения
Хронометраж времени выполнения - 2
Компиляция и кэширование регулярных выражений
Коэширование регулярных выражений
Отладочная информация регулярных выражений
Функция study
Хронометраж выполнения регулярных выражений
Хронометраж выполнения регулярных выражений - 2

Оператор split
Оператор разбиения split выполняет в каком-то смысле противоположную роль оператору поиска m/// с модификатором g в списковом контексте. Если этот оператор m/// возвращает все фрагменты текста, которые совпали с регулярным выражением, то оператор split возвращает фрагменты текста, которые не совпали с регулярным выражением, заданным ему в качестве аргумента. Оператор split разбивает исходный текст на куски, которые разделяются текстом, совпадающим с заданным регулярным выражением и возвращает эти куски текста в виде массива.

Специальный первый операнд // и ' '
Первый операнд (совпадение)
Второй операнд (целевой текст)
Третий операнд (ограничение)
Возвращение пустых элементов
Отсутствие побочных эффектов у оператора split
Захватывающие скобки оператора split
Функция grep
Оператор split
Специальный первый операнд // и ' '

PERL - статьи

Популярность Internet растет с каждым днем, однако если раньше клиенты провайдеров в основном хотели получить доступ к системам электронной почты, то в последние два года наметилась тенденция к расширению спектра требуемых услуг. Теперь интересы пользователей не ограничиваются электронным почтовым ящиком и поиском какой-либо информации в WWW, они стремятся создавать собственные Web-страницы или даже Web-узлы. Новички организуют простые HTML-страницы, не обращая особого внимания на стиль и дизайн. Но со временем у них появляется желание сделать нечто эффектное и интересное для определенной части Internet-сообщества. И тогда новоявленному Web-мастеру приходится более полно изучить язык разметки гипертекста (HTML) и языки создания клиентских сценариев (VBScript1 и JavaScript)*.
Впоследствии у него могут появиться и новые запросы, — например пообщаться с посетителями своего узла. И в этом случае его уже не удовлетворит, если в тело страницы просто добавится Webmaster. Так, он решит, что неплохо было бы получить достаточно полную информацию о посетителях узла (имена, e-mail, телефоны, факсы и адреса), подсчитать количество посещений, собрать различные мнения и, наконец, создать базу данных, чтобы пользователям сеансов связи предоставить какие-либо определенные услуги. Но для всего этого знания HTML, VBScript1 и Java Script становится явно недостаточно, так как они описывают только технологию взаимодействия сервера и клиента.

Постраничный вывод новостей с разбиением по датам
Массивы хэшей

Perl для системного администрирования

Perl - это мощный язык программирования, уходящий корнями в задачи традиционного системного администрирования. В течение многих лет он адаптировался и расширялся для работы с новыми операционными системами и новыми задачами. До сих пор, однако, не было ни одной книги, посвященной использованию Perl исключительно для системного администрирования, тем самым признавая факт глубокой исторической связи.
Если вы уже немного знакомы с Perl и вам необходимо выполнять задачи системного администрирования, то эта книга для вас. Читатели с различным уровнем опыта как в Perl, так и в системном администрировании, найдут в этой книге что-то для себя полезное.
В некоторых главах предполагается, что у вас уже есть знания по определенным темам, в то время как этого может и не быть. Для тех, кто не знаком с отдельными темами этой книги, есть несколько мини-руководств, которые помогут быстро разобраться в их основах. В число этих руководств входят введение в систему контроля версий (RCS), введение в протокол LDAP (облегченный протокол доступа к каталогам), введение в SQL, XML и протокол SNMP.

Введение
В работе системного администратора используется любой и всякий язык программирования, если его применение приносит пользу. Так почему же в этой книге выбран именно Perl? Ответ на этот вопрос слышится в самой природе системного администрирования. Реми Эвард, мой друг и коллега, однажды описал работу системного администратора такими словами: «С одной стороны, у тебя есть набор ресурсов: компьютеры, сети, программное обеспечение и т. д. А с другой стороны, есть пользователи со своими нуждами и проектами - люди, которые хотят, чтобы их работа выполнялась.

Что вам нужно
Поиск и установка модулей
Установка модулей на Win32
Установка модулей на MacOS
Нелегко быть всемогущим Перед
Избавьтесь от своих привилегий
Будьте осторожны при чтении данных
Избегайте состояний перехвата
Наслаждайтесь
Ссылки на подробную информацию

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

Perl приходит на помощь Лэптопы
Microsoft Windows NT/2000
MacOS
Сводка различий файловых систем
Сравнение файловых систем
Учет различий файловых систем в Perl
Прогулка по файловой системе
Переменные File Find
Работа с дисковыми квотами Perl сценарии
Редактирование квот при помощи модуля Quota

Учетные записи пользователей
При обсуждении этой темы мы будем иметь дело лишь с несколькими ключевыми файлами, поскольку в них хранится постоянная информация о пользователе. Говоря «постоянная», я имею в виду атрибуты, которые существуют до тех пор, пока существует пользователь, сохраняясь даже тогда, когда пользователь не зарегистрирован в системе. Иначе я буду называть это учетной записью. Если в системе у вас есть учетная запись, вы можете зарегистрироваться и стать пользователем данной системы.

Формат двоичных баз данных в BSD 4 4
Теневые пароли
Информация о пользователях в Windows
Идентификаторы пользователей в NT/2000
Пароли в NT/2000
Группы в NT
Отличия групп в Windows 2000
Права пользователей в NT/2000
Microsoft Windows NT/ Windows 2000 Resource Kits
Создание системы учетных записей

Действия пользователей
«Управление» - слишком громко сказано для функциональных возможностей, предоставляемых MacOS, поскольку последняя является не многопользовательской, а просто многозадачной операционной системой. Используя модуль Mac::Processes, можно взаимодействовать с менеджером процессов Macintosh (Macintosh Process Manager) при помощи MacOS Toolbox API для управления процессами. В случае частого применения этого модуля, стоит поискать руководство «Inside Ма-cintosh:Processes о работе с менеджером процессов.

Управление процессами в NT/2000
Использование модуля Win32 IProc
Использование модуля Win32 Setupsup
Инструментарий управления окнами
Управление процессами в Unix Стратегии
Изучение структуры ядра
Использование файловой системы /ргос
Использование модуля Proc ProcessTable
Отслеживание операций с файлами
Параметры Filter в Win32 AdvNotifу

Службы имен TCP/IP
В настоящее время большая часть «разговоров» между компьютерами происходит по протоколу управления передачей (Transmission Control Protocol), который, в свою очередь, выполняется на более низком уровне, называемом межсетевым протоколом (Internet Protocol). Эти два протокола обычно объединяются в один акроним TCP/IP. Каждой машине в TCP/IP-сети должен быть присвоен хотя бы один уникальный численный идентификатор, называемый IP-адресом. IP-адреса обычно записываются в формате NNN.NNN.N.N, например, 192.168.1.9.

Файлы узлов Первый подход
Массив возвращенный функцией split ()
Вы уже приняли религию «Базы данных»?
Проверка ошибок в файле узлов
Внедрение системы контроля исходного кода
MIS NIS+ и WINS Разработчики из
Windowsслужба имен Интернета (WINS)
Служба доменных имен (DNS)
Создание административного заголовка
Создание нескольких конфигурационных файлов

Службы каталогов
Каталоги практически всегда связаны сетью. В отличие от некоторых баз данных, расположенных на той же машине, что и их клиенты (как хорошо известный файл /etc/passwd), службы каталогов обычно предоставляются по сетям.

Finger простая служба каталогов
Служба каталогов WHOIS
LDAP сложная служба каталогов
Сравнение двух LDAP модулей
Первоначальное LDAP соединение
Выполнение поиска в LDAP
Операторы сравнения LDAP
Представление элементов в Perl
Методы Mozilla LDAP Entry
Методы элементов Net LDAP

Администрирование баз данных SQL
Существует два стандартных способа взаимодействия с SQL-сервером: DBI (DataBase Interface) и ODBC (Open DataBase Connectivity). Когда-то DBI был стандартом Unix, a ODBC - стандартом Win32, но эти границы начали расплываться после того, как ODBC стал доступным в мире Unix, a DBI был перенесен на Win32. Еще сильнее стирает эти границы пакет DBD: :ODBC - DBD-модуль, «говорящий» на ODBC из DBI.

Использование DBI Вот что следует
Удобные методы DBI
Использование ODBC. Основные шаги
Сервер Sybase и DBI
Сервер MSSQL и ODBC
Учетные записи баз данных
Мониторинг состояния сервера
Наблюдение за свободным пространством
Где выполняется вся работа?
Использование процессорного времени

Электронная почта
В контексте системного администрирования Perl может быть полезен, как посылая, так и отправляя почту. Электронная почта - это отличный способ сообщить о чем-либо: например о том, что в программе происходит что-то не то; или о результатах выполнения автоматического процесса (скажем, службы планировщика заданий или сгоп), или об изменениях чего-то, за чем необходимо следить.

Отправка почты Начнем с рассмотрения
Использование IPC специфичных для ОС
Общение напрямую по почтовым протоколам
Распространенные ошибки при отправке
Контроль над частотой отправки почты
Контролируем количество сообщений
Пропуск темы сообщения Строка
Получение почты
Разбиение почтового ящика
Отслеживание спама Теперь когда

Журналы
Журналы бывают разных типов, следовательно, нам нужно использовать различные подходы к их обработке. Самые распространенные журналы - полностью состоящие из строк текста. Популярные серверные пакеты, такие как Apache (веб), INN (новости Usenet) и Sendmail (электронная почта) записывают в журналы огромное количество текста. Большая часть журналов на Unix-машинах выглядит одинаково, потому что все они создаются одной и той же программой, известной под именем syslog.

Двоичные журналы
Использование unpackQ
Преобразование кода на С из utmp h в unpack( )
Данные с состоянием и без Помимо
Способ ротации журналов из Perl
Параметры Logflle Rotate
Кольцевой буфер
Блокировка ввода в программах журналов
Анализ журналов
Вариация на тему предыдущего примера

Безопасность и наблюдение за сетью
Под словом «безопасность» для разных людей скрываются различные вещи. Если вы придете на конференцию ученых, изучающих Древнюю Грецию и Рим, и спросите их о Риме, первый вдохновенно прочтет вам лекцию об акведуках (инфраструктура и снабжение), второй расскажет о Римской империи (идеология и политика), третий растолкует о римских легионах (армия), четвертый поведает о Сенате (администрация) и т. д. Необходимость иметь дело сразу с каждой гранью безопасности - это первая ловушка.

Неожиданные изменения
Изменения локальной файловой системы
Сравнение значений функции stat( )
Изменения сетевых служб
Обращайте внимание на подозрительную
Поиск проблемных образцов
Протокол SNMP. Давайте отвлечемся
Опасность на проводе SNMP хорош
Предотвращение подозрительных
Информация о модулях из этой главы

Пятиминутное руководство по RCS
Это короткое руководство научит вас всему, что нужно знать о применении системы контроля версий (Revision Control System, RCS) для системного администрирования. Если вы собираетесь серьезно использовать RCS, то обязательно загляните в страницы руководств и источники информации, ссылки на которые приведены в конце приложения, поскольку здесь рассматривается лишь минимум возможностей.

Распространенные операции в RCS
Ссылки на подробную информацию

Десятиминутное руководство по LDAP
LDAP (Lightweight Directory Access Protocol, облегченный протокол доступа к сетям) - это одна из самых значительных служб каталогов, существующих в настоящее время. Вероятно, со временем системные администраторы будут работать с LDAP-серверами и клиентами в различном контексте

Десятиминутное руководство по LDAP
Организация данных в LDAP

Пятнадцатиминутное руководство по SQL
Команда GO применяется с интерактивными клиентами баз данных и служит указанием на то, что необходимо выполнить предыдущую команду. Но это не SQL-оператор. В следующих примерах будем считать, что команду GO необходимо выполнять после каждого SQL-оператора, если используется один из таких клиентов. Кроме того, комментарии в SQL будут обозначаться при помощи «- -».

Создание/удаление баз данных и таблиц
Добавление данных в таблицу
Запрос информации
Получение подмножества строк из таблицы
Метасимволы LIKE
Простая обработка данных
Добавление результатов запроса
Изменение информации в таблице
Contracts
Дополнительные аспекты SQL

Двадцатиминутное руководство по SNM
Поскольку нас интересует применение SNMP для управления устройствами, мы обратимся к ветви mgmt(2). Первый узел под mgmt(2) - сам MIB (это почти рекурсия). А раз существует только один MIB, то единственный узел под mgmt(2) - это mib-2(1).

Cамоучитель по Perl (2)

Язык Perl создан системным программистом Ларри Уоллом (Larry Wall) как средство UNIX, позволяющее "склеивать" из программок, выполняющих отдельные функции, большие сценарии для решения комплекса задач, связанных с администрированием, обработкой текста и т. д. В дальнейшем он вышел за эти рамки, превратился в настоящий язык программирования, в котором нашли отражение многие тенденции, обозначившиеся в технологии программирования за последнее десятилетие, и получил широкое распространение в связи с развитием Inernet. Perl является основным средством создания приложений CGI, удобен для решения задач администрирования Web-серверов, электронной почты и других систем. Благодаря быстроте и легкости написания сценариев на этом языке он распространился и на другие платформы: DOS, Windows, OS/2, Mac, VMS и пр. Одно из основных достоинств языка Perl — его открытость и доступность. В сети Internet можно получить совершенно бесплатно исходные тексты интерпретатора perl (язык Perl — интерпретируемый, что в некоторых случаях является преимуществом) и модулей его расширения.

Предисловие
Кому он нужен, этот Perl? Тем, кто создает CGI-сценарии, занимается администрированием системы при помощи написания скриптов, а не щелкая левой кнопкой мыши, обрабатывает тексты, решает многие другие задачи из смежных областей и при этом нуждается в мощном, но простом в применении средстве, позволяющем создавать большие программы и маленькие программки и быстро их опробовать. Тем, кто преподает программирование, тоже полезно иметь представление об этом языке, так как он обладает интересными свойствами, отсутствующими в традиционных языках программирования, используемых в процессе обучения.

Введение в мир Perl
Что такое Perl? Это сокращенное название языка программирования Practical Extraction and Report Language (Практический язык извлечений и отчетов). Что подразумевается под "извлечениями" и "отчетами"? Почему практический язык? Для чего он предназначен? Какие задачи можно решать с его помощью? Эти и многие другие вопросы возникают, естественно, у любого человека, хоть немного знакомого с информатикой, когда он впервые сталкивается с новым для него языком программирования.

История языка Perl
История языка Perl - 2
История языка Perl - 3
История языка Perl - 4
Характерные черты Perl
Характерные черты Perl - 2
Характерные черты Perl - 3
Характерные черты Perl - 4
Характерные черты Perl - 5
Области применения Perl

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

Простая программа
Простая программа - 2
Простая программа - 3
Простая программа - 4
Простая программа - 5
Простая программа - 6
Объявления и комментарии
Объявления и комментарии - 2
Выражения и операторы
Выражения и операторы - 2

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

Скалярный тип данных
Скалярный тип данных - 2
Скалярный тип данных - 3
Скалярный тип данных - 4
Скалярный тип данных - 5
Скалярный тип данных - 6
Скалярный тип данных - 7
Скалярный тип данных - 8
Скалярный тип данных - 9
Массивы скаляров

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

Арифметические операции
Арифметические операции - 2
Арифметические операции - 3
Арифметические операции - 4
Арифметические операции - 5
Арифметические операции - 6
Операции ввода/вывода
Разные операции
Разные операции - 2
Разные операции - 3

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

Простые операторы
Простые операторы - 2
Модификаторы простых операторов
Составные операторы
Составные операторы - 2
Составные операторы - 3
Составные операторы - 4
Составные операторы - 5
Составные операторы - 6
Операторы цикла

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

Операция ввода команды
Операция ввода команды - 2
Операция ввода команды - 3
Операция ()
Операция () - 2
Операция () - 3
Операция () - 4
Операция () - 5
Функция print
Функция print - 2

Работа с файлами
Когда в программе мы создаем переменные и храним в них разнообразные данные, мы теряем их по завершении работы программы. Если нам необходимо сохранить данные и использовать их в разрабатываемых программах, мы создаем файл, записываем в него данные и сохраняем его на диске. Практически любой язык программирования предоставляет программисту средства манипулирования файлами и хранимыми в них данными.

Дескрипторы файлов
Дескрипторы файлов - 2
Дескрипторы файлов - 3
Доступ к файлам
Доступ к файлам - 2
Доступ к файлам - 3
Доступ к файлам - 4
Доступ к файлам - 5
Доступ к файлам - 6
Доступ к файлам - 7

Форматы
Как мы помним, дословный перевод аббревиатуры языка Perl включает в себя слова "язык отчетов", т. е. язык Perl предназначен не только для извлечения и обработки информации из текстовых файлов, но и для генерирования отчетов на основе этой информации. Пока что мы для вывода информации использовали функцию print (), которая не очень-то удобна для создания отчетов — определенным образом отформатированной выходной информации.

Объявление формата
Объявление формата - 2
Объявление формата - 3
Объявление формата - 4
Объявление формата - 5
Объявление формата - 6
Объявление формата - 7
Использование нескольких форматов
Использование нескольких форматов - 2
Использование нескольких форматов - 3

Ссылки
Ссылка на некоторую переменную содержит адрес этой переменной в оперативной памяти. Говорят, что ссылка указывает на переменную. Ссылки широко используются в современных языках программирования, таких как Pascal, C/C++. Вместо слова "ссылка" для обозначения термина может применяться слово "указатель". Основной областью применения ссылок является создание сложных структур данных, способных изменяться во время выполнения программы.

Виды ссылок
Виды ссылок - 2
Виды ссылок - 3
Создание ссылок
Операция ссылки "\"
Конструктор анонимного массива
Конструктор анонимного ассоциативного массива
Другие способы
Другие способы - 2
Разыменование ссылок

Работа со строками
Язык, созданный первоначально с главной целью — облегчить обработку большого количества отчетов, просто обязан располагать развитыми средствами для работы с текстом. Напомним, что в среде UNIX, из которой вышел язык Perl, средства для обработки текстовых строк имеются в различных утилитах: sed, awk, grep, cut. Командный интерпретатор shell, также обладающий некоторыми средствами для обработки строк, позволяет организовать совместную работу этих утилит, передавая выход одной программы на вход другой через механизм, называемый конвейером

Регулярные выражения
Метасимволы
Метасимволы - 2
Метасимволы - 3
Метапоследовательности
Метапоследовательности - 2
Атомы
Обратные ссылки
Обратные ссылки - 2
Расширенный синтаксис регулярных выражений

Подпрограммы и функции
Подпрограммы в языке Perl играют ту же роль, что и функции в языке С, или процедуры и функции в языке Pascal. Они выполняют две основные задачи: позволяют разбить одну (большую программу на несколько небольших частей, делая ее более ясной для понимания; объединяют операторы в'одну группу для повторного использования. В языке Perl не различаются понятия "подпрограмма" и "функция", эти слова являются синонимами.

Определение подпрограммы
Определение подпрограммы - 2
Вызов подпрограммы
Локальные переменные в подпрограммах
Функция ту()
Функция lосаl ()
Функция lосаl () - 2
Передача параметров
Передача по ссылке параметров-массивов
Использование типа typeglob

Пакеты, библиотеки, модули
Итак, пакет — это способ создания собственного изолированного пространства имен для отдельного отрезка программы. Каждый фрагмент кода Peri-программы относится к некоторому пакету. Объявление package NAMESPACE; определяет пакет NAMESPACE. Ключевое слово package является именем встроенной функции, в результате обращения к которой компилятору предписывается использовать новое пространство имен. Область действия объявления пакета определяется аналогично области видимости локальных переменных, объявленных при помощи функций ту () или local ().

Пакеты
Пакеты - 2
Таблицы символов.
Таблицы символов. - 2
Конструктор и деструктор пакета ВEGIN и END
Автозагрузка
Библиотеки
Функция require()
Функция require() - 2
Создание и подключение библиотечного файла

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

Классы и объекты
Классы и объекты - 2
Классы и объекты - 3
Методы
Конструкторы
Конструкторы - 2
Методы класса и методы объекта
Методы класса и методы объекта - 2
Вызов метода
Вызов метода - 2

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

Опции командной строки
Опции командной строки - 2
Опции командной строки - 3
Опции командной строки - 4
Отладчик Perl
Просмотр текста программы
Выполнение кода
Просмотр значений переменных
Точки останова и действия
Точки останова и действия - 2

Язык Perl и CGI-программирование
Основу "всемирной паутины" WWW составляют Web-узлы. Это компьютеры, на которых выполняется специальная программа — Web-сервер, ожидающая запроса со стороны клиента на выдачу документа. Документы сохраняются на Web-узле, как правило, в формате HTML. Клиентом Web-сервера является программа-браузер, выполняющаяся на удаленном компьютере, которая осуществляет запрос к Web-серверу, принимает запрошенный документ и отображает его на экране.

HTML-формы
Тэг FORM
Тэг FORM - 2
Тэг INPUT
Тэг INPUT - 2
Тэг INPUT - 3
Тэг SELECT
Тэг TEXTAREA
Пример формы
Пример формы - 2

Ресурсы Perl
Язык Perl распространяется и развивается в глобальной сети Internet. Самые последние новости из мира Perl можно найти на многочисленных Web-узлах и просто обычных страницах HTML, авторы которых являются апологетами языка Perl и входят в так называемое сообщество Perl — свободное объединение людей, использующих и развивающих язык Perl там, где требуется что-нибудь и как-нибудь автоматизировать.

Конференции
Конференции - 2
Специализированные Web-узлы Perl
Специализированные Web-узлы Perl - 2
Архив СРАМ
Архив СРАМ - 2


Планирование решений в экономике - перейти
Оптимизация бизнес процессов - перейти
Финансовый менеджмент - перейти
Финансовое планирование - перейти
История экономического анализа - перейти
Финансовый анализ - перейти
Торговля золотом - перейти
Концепция контроллинга - перейти
Самоучитель по 3dsmax 7 - перейти
Введение в трехмерную графику - перейти
Основные принципы работы в 3ds max7 - перейти
Моделирование - перейти
Создание трехмерной анимации - перейти
Текстурирование объекта - перейти
Освещение сцены. Виртуальные камеры - перейти