14.4.4.1. Небольшой учебный пример по Perl: blq
14.4.4.1. Небольшой учебный пример по Perl: blq
blq-сценарий представляет собой средство для опроса блок-списков (списки Internet-узлов, которые идентифицируются как постоянные источники нежелательных почтовых сообщений, известных также как спам). Текущую версию исходного кода можно найти на странице проекта blg <http://www.unicom.com/sw/blg/>.
blq — хороший пример небольшого Perl-сценария, иллюстрирующий как сильные, так и слабые стороны языка. В нем интенсивно используется средство обработки регулярных выражений. С другой стороны, используемый в сценарии модуль расширения Perl Net::DNS необходимо включать в зависимости от обстоятельств, поскольку не гарантируется, что он присутствует в какой-либо заданной Perl-инсталляции.
Сценарий blq, как Perl-код, является исключительно четким и организованным, рекомендуется изучить его как пример хорошего стиля (хорошими примерами также являются другие Perl-инструменты, упомянутые на сайте проекта blq). Однако некоторые части кода покажутся нечитабельными, если не знать весьма специфических идиом Perl — в качестве примера можно привести первую строку кода $0=~s!.*/!!;. Хотя все языки характеризуются некоторой непрозрачностью, непрозрачность Perl — худшая из всех.
Для написания небольших сценариев данного типа хорошо подходят языки Tcl и Python, однако оба они испытывают недостаток удобных функций Perl для поиска регулярных выражений, которые интенсивно используются в blq. Реализации рассматриваемой программы на Tcl или Python были бы приемлемыми, но, вероятно, менее компактными и выразительными. Написание подобной программы на Emacs Lisp отняло бы даже меньше времени, и программа была бы более компактной, но, вероятно, чрезвычайно медленной в работе.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
Введение Небольшой пример конверсии сайта
Введение Небольшой пример конверсии сайта У человечества много очень правильных технологий, разработанных в очень неправильных целях. Р. Бакминстер Фуллер. Коллекция циничных высказываний Майкла Монкура Коммерческие цели сайта должны некоторым образом
6.1.3. Учебный пример: GCC
6.1.3. Учебный пример: GCC Программа GCC, GNU С-компилятор, применяемый в большинстве современных Unix-систем, возможно, наилучшим образом демонстрирует преимущества проектирования с учетом прозрачности. Программа GCC организована как последовательность стадий обработки,
6.1.5. Учебный пример: SNG
6.1.5. Учебный пример: SNG Программа sng осуществляет преобразование формата PNG в его полнотекстовое представление (формат SNG или Scriptable Network Graphics) и обратно. Формат SNG можно просматривать и модифицировать с помощью обычного текстового редактора. Работающая с PNG-файлом программа
8.2.1. Учебный пример: sng
8.2.1. Учебный пример: sng В главе 6 рассматривалась утилита sng(1), преобразовывающая PNG-файл в редактируемую полностью текстовую форму. Формат файлов данных SNG заслуживает повторного рассмотрения здесь для контраста, поскольку он не вполне является узкоспециальным
8.2.8. Учебный пример: awk
8.2.8. Учебный пример: awk Мини-язык awk является инструментальным средством Unix старой школы, прежде широко используемым в shell-сценариях. Как и т4, утилита awk предназначена для написания небольших, но выразительных программ для преобразования текстового ввода в текстовый вывод.
14.4.4.2. Большой учебный пример по Perl: keeper
14.4.4.2. Большой учебный пример по Perl: keeper Программа keeper — инструмент для создания картотеки поступающих пакетов и поддержки FTP- и index-файлов WWW для крупных архивов программного обеспечения Linux на сайте проекта ibiblio. Исходный код и документацию можно найти в подкаталоге
14.4.6.1. Небольшой учебный пример по Python: imgsizer
14.4.6.1. Небольшой учебный пример по Python: imgsizer Imgsizer — утилита, которая переписывает WWW-страницы так, что теги включения изображений автоматически получают верные размеры изображения (это ускоряет загрузку страниц во многих браузерах). Исходные коды и документацию можно
6.1.3. Учебный пример: GCC
6.1.3. Учебный пример: GCC Программа GCC, GNU C-компилятор, применяемый в большинстве современных Unix-систем, возможно, наилучшим образом демонстрирует преимущества проектирования с учетом прозрачности. Программа GCC организована как последовательность стадий обработки,
6.1.5. Учебный пример: SNG
6.1.5. Учебный пример: SNG Программа sng осуществляет преобразование формата PNG в его полнотекстовое представление (формат SNG или Scriptable Network Graphics) и обратно. Формат SNG можно просматривать и модифицировать с помощью обычного текстового редактора. Работающая с PNG-файлом программа
7.2.5.1. Учебный пример: scp и ssh
7.2.5.1. Учебный пример: scp и ssh Индикаторы выполнения — один распространенный случай, в котором связанный протокол действительно является тривиальным. Утилита scp(1) (secure-copy command — команда безопасного копирования) вызывает программу ssh(1) как подчиненный процесс, перехватывая
8.2.1. Учебный пример: sng
8.2.1. Учебный пример: sng В главе 6 рассматривалась утилита sng(1), преобразовывающая PNG-файл в редактируемую полностью текстовую форму. Формат файлов данных SNG заслуживает повторного рассмотрения здесь для контраста, поскольку он не вполне является узкоспециальным
14.4.4.1. Небольшой учебный пример по Perl: blq
14.4.4.1. Небольшой учебный пример по Perl: blq blq-сценарий представляет собой средство для опроса блок-списков (списки Internet-узлов, которые идентифицируются как постоянные источники нежелательных почтовых сообщений, известных также как спам). Текущую версию исходного кода можно
14.4.4.2. Большой учебный пример по Perl: keeper
14.4.4.2. Большой учебный пример по Perl: keeper Программа keeper — инструмент для создания картотеки поступающих пакетов и поддержки FTP- и index-файлов WWW для крупных архивов программного обеспечения Linux на сайте проекта ibiblio. Исходный код и документацию можно найти в подкаталоге
14.4.6.1. Небольшой учебный пример по Python: imgsizer
14.4.6.1. Небольшой учебный пример по Python: imgsizer Imgsizer — утилита, которая переписывает WWW-страницы так, что теги включения изображений автоматически получают верные размеры изображения (это ускоряет загрузку страниц во многих браузерах). Исходные коды и документацию можно
Пример 33-5. Комбинирование сценария Bash и Perl в одном файле
Пример 33-5. Комбинирование сценария Bash и Perl в одном файле #!/bin/bash# bashandperl.shecho "Вас приветствует часть сценария, написанная на Bash."# Далее могут следовать другие команды Bash.exit 0# Конец сценария на Bash.# =======================================================#!/usr/bin/perl# Эта часть сценария должна вызываться с