14.4.4.2. Большой учебный пример по Perl: keeper

14.4.4.2. Большой учебный пример по Perl: keeper

Программа keeper — инструмент для создания картотеки поступающих пакетов и поддержки FTP- и index-файлов WWW для крупных архивов программного обеспечения Linux на сайте проекта ibiblio. Исходный код и документацию можно найти в подкаталоге поисковых инструментов архива ibiblio <http: / /www. ibiblio. org>.

Программа keeper — хороший пример интерактивного Рег1-приложения более чем среднего размера. Интерфейс командной строки является строчным и создан по образцу специализированной оболочки или редактора каталогов; необходимо отметить встроенные справочные возможности. Рабочие части интенсивно используют обработку файлов и каталогов, поиск шаблонов и шаблонное редактирование. Следует отметить легкость, с которой keeper генерирует Web-страницы и email-уведомления из программных шаблонов. Кроме того, примечательно использование заготовленного Perl-модуля для автоматизации обхода различных функций в дереве каталогов.

Данное приложение, состоящее примерно из 3300 строк кода, вероятно, превышает рекомендуемый при создании одной Perl-программы предел размера и сложности. Тем не менее, большая часть keeper была написана в течение шести дней. Для написания такой программы на С, С++ или Java потребовалось бы шесть недель, а программа была бы крайне трудной в отладке или модификации. Для чистого Tel данный путь слишком сложен. Версия на Python, вероятно, была бы структурно более чистой, читаемой и удобной в обслуживании, но также и более хаотичной (особенно в части поиска шаблонов). Задачи данной программы можно было бы выполнять с помощью какого-либо режима Emacs Lisp, но Emacs не подходит для использования на telnet-канале, который часто затормаживается из-за перегрузок сервера.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

6.1.5. Учебный пример: SNG

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

6.1.5. Учебный пример: SNG Программа sng осуществляет преобразование формата PNG в его полнотекстовое представление (формат SNG или Scriptable Network Graphics) и обратно. Формат SNG можно просматривать и модифицировать с помощью обычного текстового редактора. Работающая с PNG-файлом программа


8.2.1. Учебный пример: sng

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

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.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.5.2. Moodss: большой учебный пример по Tel

Из книги автора

14.4.5.2. Moodss: большой учебный пример по Tel Система Moodss представляет собой графическое мониторинговое приложения для системных администраторов. Оно способно следить за журналами и накапливать статистические данные по работе MySQL, Linux, SNMP-сетей и Apache, а также предоставляет их


14.4.6.3. Большой учебный пример Python: PIL

Из книги автора

14.4.6.3. Большой учебный пример Python: PIL Python-библиотека обработки графики (Python Imaging Library — PIL) поддерживает обработку растровой графики. Программа поддерживает множество популярных форматов, включая PNG, JPEG, BMP, TIFF, PPM, XBM и GIF. Python-программы могут использовать ее для того, чтобы


6.1.3. Учебный пример: GCC

Из книги автора

6.1.3. Учебный пример: GCC Программа GCC, GNU C-компилятор, применяемый в большинстве современных Unix-систем, возможно, наилучшим образом демонстрирует преимущества проектирования с учетом прозрачности. Программа GCC организована как последовательность стадий обработки,


7.2.5.1. Учебный пример: scp и ssh

Из книги автора

7.2.5.1. Учебный пример: scp и ssh Индикаторы выполнения — один распространенный случай, в котором связанный протокол действительно является тривиальным. Утилита scp(1) (secure-copy command — команда безопасного копирования) вызывает программу ssh(1) как подчиненный процесс, перехватывая


8.2.8. Учебный пример: awk

Из книги автора

8.2.8. Учебный пример: awk Мини-язык awk является инструментальным средством Unix старой школы, прежде широко используемым в shell-сценариях. Как и m4, утилита awk предназначена для написания небольших, но выразительных программ для преобразования текстового ввода в текстовый вывод.


14.4.4.1. Небольшой учебный пример по Perl: blq

Из книги автора

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


14.4.5.2. Moodss: большой учебный пример по Tcl

Из книги автора

14.4.5.2. Moodss: большой учебный пример по Tcl Система Moodss представляет собой графическое мониторинговое приложения для системных администраторов. Оно способно следить за журналами и накапливать статистические данные по работе MySQL, Linux, SNMP-сетей и Apache, а также предоставляет их


14.4.6.3. Большой учебный пример Python: PIL

Из книги автора

14.4.6.3. Большой учебный пример Python: PIL Python-библиотека обработки графики (Python Imaging Library — PIL) поддерживает обработку растровой графики. Программа поддерживает множество популярных форматов, включая PNG, JPEG, BMP, TIFF, PPM, XBM и GIF. Python-программы могут использовать ее для того, чтобы


Пример 33-5. Комбинирование сценария Bash и Perl в одном файле

Из книги автора

Пример 33-5. Комбинирование сценария Bash и Perl в одном файле #!/bin/bash# bashandperl.shecho "Вас приветствует часть сценария, написанная на Bash."# Далее могут следовать другие команды Bash.exit 0# Конец сценария на Bash.# =======================================================#!/usr/bin/perl# Эта часть сценария должна вызываться с