Приложение 2.
Модули Perl

    Это приложение содержит перечень модулей Perl и их краткое описание.

Стандартные модули
Модули СРАN

Стандартные модули

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


   Замечание. Более подробную информацию о работе с модулем Perl можно получить, обработав его одной из программ pod2html, pod2text, pod2latex или pod2man, которые извлекают документацию в формате POD из самого модуля и представляют ее в соответствующих форматах. Перечисленные программы входят в стандартную поставку Perl.

Таблица 1. Стандартные модули Perl
Модуль Краткое описание
AnyDBM_File Этот модуль всего лишь загружает один из модулей для связывания хешей Perl с файлами DBM в следующей последовательности: NDBM_File, DB_File, GDBM_File, SDBM_File и ODBM_File. Если установлен модуль NDBM_File, то загружается он; если его нет, то ищется следующий из приведенного списка и т. д. Модуль SDBM_File всегда присутствует, так как он входит в стандартную поставку Perl
Autoloader Предоставляет стандартный механизм для отложенной загрузки функций, хранящихся в отдельных файлах на диске. Используется при создании собственных модулей расширения Perl
AutoSplit Содержит функции, разбивающие программу или модуль Perl на файлы, которые впоследствии может обрабатывать модуль AutoLoader. Основное применение - построение библиотечных модулей Perl с автозагрузкой
Benchmark Содержит набор функций для проведения тестов на быстродействие выполнения отдельных фрагментов кода программы
Carp Содержит функции carp() и croak() - аналоги функций warn() и die(). Они отображают сообщение с указанием подпрограммы и номера ее строки, откуда вызываются эти функции, тогда как warn() и die() отображают номер строки в коде всей программы
Config Содержит набор функций для доступа к конфигурационной информации Perl, которую сценарий Configure занес в компьютер при установке Perl
Cwd Содержит функции для определения полного имени текущего рабочего каталога и его изменения. Эти функции работают надежнее и быстрее, чем соответствующие встроенные функции Perl
DB_File Позволяет использовать в программе Perl возможности, предоставляемые библиотекой Berkeley DB, предлагая единообразный интерфейс доступа к базам данных разных форматов
Devel::SelfStubber Генерация шаблонов (заготовок) для самозагружающихся модулей
diagnostics Позволяет отображать более полные и развернутые диагностические сообщения компилятора и интерпретатора perl по сравнению с используемой по умолчанию краткой диагностикой
DirHandle Предоставляет объектный интерфейс к функциям работы с каталогами: opendir(), closedir(), readdir() и rewinddir()
DynaLoader Определяет стандартный интерфейс Perl к механизмам динамической загрузки, доступным на большинстве компьютерных платформ. Используется при создании собственных модулей расширения Perl
Env Perl поддерживает работу с переменными среды через ассоциативный массив %ENV. Модуль позволяет использовать переменные среды как обычные скалярные переменные Perl, используя имена этих переменных в качестве идентификатора переменных Perl. Например, $РАТН, $НОМЕ и т.д.
Exporter Реализует метод import(), который обычно наследуется другими модулями вместо определения ими собственных методов импортирования своих определений и функций
ExtUtils::Install Предоставляет две функции install() и uninstall(), необходимые модулю ExtUtils::MakeMaker для выполнения зависимой от платформы установки и удаления расширений Perl
ExtUtils::Liblist Содержит функцию ext(), которая преобразует список библиотек в строки, пригодные для включения в файл Makefile расширения Perl на текущей платформе
ExtUtils::MakeMaker Автоматизирует создание файла Makefile.pl, необходимого для построения расширения Perl
ExtUtils::Manifest Содержит функции для создания файла MANIFEST, который содержит список имен файлов (одно имя в строке с необязательным комментарием). Содержимое файла легко прочитать командой awk '{print $l}' MANIFEST. Этот модуль используется модулем ExtUtils::MakeMaker для создания списка файлов, содержащих функции модуля
ExtUtils::Miniperl Содержит единственную функцию writemain(), получающую список каталогов, содержащих архивные библиотеки, которые необходимы модулям Perl и которые следует включить в новый двоичный файл Perl. Обычно используется из файла Makefile, сгенерированного модулем ExtUtils::MakeMaker. Программист непосредственно не работает с этим модулем
ExtUtils::MkbootStrap Единственная функция этого модуля mkbootstrap() обычно вызывается из файла Makefile соответствующего расширения и создает файл *.bs, необходимый для динамической загрузки в некоторых архитектурах операционных систем
ExtUtils::Mksymlists Единственная функция этого модуля Mksymlists() создает файлы, которые используются компоновщиком некоторых операционных систем при создании совместно используемых (shared) библиотек для динамических расширений Perl. Обычно вызывается из файла Makefile, сгенерированного модулем ExtUtils::MakeMaker при построении расширения
ExtUtils::MM_OS2 Перекрывает методы модуля ExtUtils::MM_Unix, используемые модулем ExtUtils::MakeMaker, для работы в операционной системе OS2
ExtUtils::MM_Unix Методы этого модуля используются модулем ExtUtils::MakeMaker. Программист никогда не работает с ними, если только он не улучшает модуль ExtUtils::MakeMaker в связи с его переносимостью
ExtUtils::MM_VMS Перекрывает методы модуля ExtUtils:MM_Unix, используемые модулем ExtUtils::MakeMaker, для работы в операционной системе VMS
Fcntl Этот модуль всего лишь трансляция заголовочного файла fcntl.h языка С, содержащего определения разных констант
File::Basename Функции этого модуля осуществляют синтаксический разбор полного имени файла, выделяя ключевые единицы. Можно использовать синтаксис имен файлов разных операционных систем. Например, в UNIX ключевыми единицами будут путь, имя файла и расширение
File::CheckTree Единственная функция этого модуля validate() позволяет выполнять унарные именованные операции проверки над группой файлов, причем для каждого файла группы можно задать свои операции. Все операции проверки выполняются за одно обращение к функции
File::Copy Содержит единственную функцию сору(), которая копирует группу файлов за одно обращение
File::Find Содержит две функции поиска файлов по критерию, определенному в пользовательской подпрограмме. Функция find() отыскивает все файлы в каталогах заданного списка, последовательно переходя на поиск в каталогах нижнего уровня. Функция finddepth() также отыскивает файлы в каталогах заданного списка, но начинает поиск с последнего вложенного каталога, последовательно переходя на поиск в каталогах верхнего уровня
File::Path Содержит две функции mkpath() и rmtree(), которые, соответственно, создают и удаляют каталоги. В отличие от встроенной функции создания каталога mkdir() функция этого модуля создает каталоги верхнего уровня, если они не существуют. Функция удаления каталога, в отличие от встроенной функции rmdir(), удаляет любой, не обязательно пустой каталог, причем возвращает количество удаленных файлов
FileCashe Предоставляет функцию casheout(), которая открывает файл, не обращая внимания на установленное в соответствующей переменной среды количество одновременно открытых файлов. Ее использование для открытия файлов позволяет открыть произвольное число файлов
FileHandle Предоставляет объектный интерфейс для работы с дескрипторами файлов
GDBM_File Позволяет программе Perl использовать возможности, предоставляемые библиотекой gdbm, распространяемой на условиях лицензии GNU
Getopt::Long Реализует функцию GetOption(), позволяющую получать и обрабатывать опции командной строки, с которыми была запущена программа Perl. Параметры этой функции определяют синтаксис правильных опций: опция с обязательным/необязательным строковым/целым/числовым параметром, опция без параметров
Getopt::Std Содержит функции getopt() и getopts(), реализующие простой механизм обработки односимвольных опций (например, -v). Опции можно объединять в группы
I18N::Collate Предоставляет объекты, которым можно присвоить строки данных, и в дальнейшем сравнивать и упорядочивать их в соответствии с таблицей символов национального алфавита. Для правильной работы объектов и методов этого модуля необходимо иметь установленный модуль POSIX языка Perl. Системе также должны быть доступны POSIX-функции setlocale(3) и strxfrm(3)
integer Использование в программе этого модуля предписывает компилятору применять арифметику целых чисел, начиная от строки вызова модуля (use integer;) до конца блока, в котором он вызван
IPC::Open2 Содержит функцию open2(), которая порождает новый процесс и выполняет в нем команду, определяемую значением параметра функции. Ассоциируя со стандартными файлами ввода и вывода два дескриптора, позволяет программе Perl получать и передавать информацию для порожденного процесса
IPC::Open3 Содержит функцию open3(), которая работает аналогично функции open2() модуля IPC::Open2 за исключением того, что открывается еще третий файл для обмена информацией - стандартный файл вывода ошибок
lib Упрощает работу со специальной переменной @INC во время компиляции. Позволяет добавлять дополнительные каталоги поиска для операторов use и require
Math::BigFloat Позволяет создавать объекты, представляющие вещественные числа с произвольным количеством цифр в мантиссе, и выполнять над ними арифметические операции
Math::BigInt Позволяет создавать объекты, представляющие целые числа с произвольным количеством цифр в мантиссе, и выполнять над ними арифметические операции
Math::Complex Позволяет создавать объекты, представляющие комплексные числа, и выполнять над ними арифметические операции
NDBM_File Позволяет связывать функцией tie() хеши с файлами NDBM. См. описание модуля DB_File
Net::Ping Содержит функцию pingecho(), которая использует TCP-службу эхо (echo) (не ICMD) для определения, доступен ли удаленный хост
ODBM_File Позволяет связывать функцией tie() хеши с файлами ODBM. См. описание модуля DB_File
overload Позволяет осуществлять перегрузку стандартных операций Perl, т.е. при вызове в программе стандартной функции выполнять вместо предусмотренных стандартных операций методы каких-либо классов или собственные подпрограммы. Модуль постоянно изменяется, поэтому рекомендуем внимательно ознакомиться с документацией установленного на компьютере интерпретатора perl
POSIX Обеспечивает доступ ко всем (или почти всем) идентификаторам стандарта POSIX версии 1003.1. Для многих из этих идентификаторов реализованы Perl-подобные интерфейсы
Pod::Text Содержит функцию pod2text(), которая в программе Perl позволяет преобразовать файл документации в формате POD в обычный текстовый ASCII файл. (В стандартную поставку Perl входит отдельная программа pod2text, которую можно запустить из командной строки)
Safe Создает специальную область, в которой можно выполнить небезопасный код Perl. Эта область имеет собственное пространство имен и ассоциированную маску операций. Код, выполняемый в ней, не может ссылаться на переменные вне своего пространства имен. Компилируемый вне этой области код может поместить некоторые свои переменные в пространство имен этой области. Тогда они станут доступны коду, компилируемому в ней. Задаваемая маска операций позволяет исключить из выполняемого в безопасной области кода Perl потенциально опасные операции. По умолчанию любые операции доступа к системным ресурсам не выполняются в безопасной области
SDBM_File Позволяет связывать функцией tie() хеши с файлами SDBM. См. описание модуля DB_File
Search::Dict Содержит функцию look(), которая устанавливает указатель позиции в файле на строку, содержимое которой больше или равно некоторому строковому значению, переданному в функцию в качестве параметра
SelectSaver Позволяет создать объект SelectSaver, с помощью которого можно выбрать новый дескриптор файла, при этом старый дескриптор сохраняется и восстанавливается при уничтожении объекта SelectSaver
SelfLoader Этот модуль предоставляет механизм отсроченной загрузки функций, объявления которых расположены после лексемы __DATA__ пакета, определенного в файле программы Perl. Функция будет автоматически загружена при первом к ней обращении. Этот модуль отличается от модуля Autoloader, который работает с функциями в отдельных самостоятельных файлах
Shell Позволяет вызывать утилиты UNIX, доступные из командной строки, как будто они являются подпрограммами Perl. Параметры, включая ключи, передаются в утилиты как строковые данные
sigtrap Позволяет инициализировать обработчик сигнала для сигналов, переданных в качестве параметров модулю при его подключении оператором use
Socket Загружает определения констант и функций заголовочного файла socket.h языка С, а также специальных функций обработки некоторых структур данных, необходимых для работы с сетью
strict Позволяет ограничить небезопасные конструкции: переменные, ссылки и простые слова, не являющиеся заранее объявленными подпрограммами
subs Осуществляет объявление подпрограмм, чьи имена передаются в списке при подключении модуля в программу Perl. Это объявление позволяет вызывать в сценарии эти подпрограммы, задавая их параметры без скобок, даже до их определения. Можно перекрыть встроенные функции
Symbol Предоставляет функцию gensym(), которая создает анонимную глобальную переменную и возвращает ссылку на нее. Такую переменную можно использовать в качестве дескриптора файла или каталога. Функция qualify() уточняет имена переменных, добавляя к ним префикс, состоящий из имени пакета, где они определены, и двойного двоеточия "::"
Sys::Hostname Предоставляет функцию hostname(), которая всеми возможными способами пытается получить имя хоста, последовательно вызывая разные системные программы
Sys::Syslog Реализует Perl-интерфейс к программе syslog(3) операционной системы UNIX. Для использования этого модуля следует программой h2ph создать файл syslog.ph
Term::Cap Позволяет создать объект, который извлекает из базы данных терминалов и сохраняет информацию о свойствах терминала заданного типа. См. man-страницу termcap(5) для получения информации об использовании базы данных терминалов
Term::Complete Содержит функцию Complete(), которая посылает сообщение через текущий дескриптор файла и читает ответ пользователя, выполняя специальные действия, если в ответе пользователя встречаются коды следующих клавиш: <Tab>, <Ctrl>+<D>, <Ctrl>+<U> или <Del>.
Test::Harness Этот модуль используется модулем Extutils::MakeMaker. Если строится расширение Perl и в каталоге расширения имеются тестовые сценарии, имена которых удовлетворяют шаблону t/*.t, то функция runtest() выполнит все тестовые сценарии, переданные ей в качестве параметров
Text::Abbrev Позволяет создать таблицу неповторяющихся сокращений для элементов списка из их значений. Функция abbrev() просматривает содержимое каждого элемента переданного ей списка и конструирует для него простым отсечением все возможные сокращения с учетом того, чтобы ни одно из полученных сокращений не совпадало со значениями других элементов в списке. Эти сокращения используются в качестве ключей в хеше, переданном в функцию abbrev(); для всех подобных ключей значением становится значение самого элемента списка
Text::ParseWords Содержит функцию quotewords(), которая выделяет из содержимого строк, заданных элементами массива, слова, ограниченные определяемым пользователем разделителем (может быть задан регулярным выражением)
Text::Soundex Реализует алгоритм soundex, описанный в томе 3 книги Д. Кнут "Искусство программирования". Этот алгоритм разбивает слова на более мелкие части, используя простую модель, которая аппроксимирует звучание английского слова. Каждому слову в соответствии с его разбиением присваивается четырехсимвольный код, первым символом которого является буква, а остальные три представляют цифры
Text::Tabs Предоставляет две функции - expand() и unexpand(), которые, соответственно, преобразуют все символы табуляции в строке в символы, определяемые пользователем, и наоборот - символы, определяемые пользователем, в символы табуляции
Text::Wrap Предоставляет функцию wrap(), которая форматирует длинную строку данных в абзац заданной ширины, определяя отступы для первой и последующих строк абзаца. Перенос осуществляется по словам
Tie::Hash
Tie::StdHash
Эти модули позволяют создать шаблоны (заготовки) для методов классов, реализующих действия для связываемых функцией tie() хешей
Tie::Scalar
Tie::StdScalar
Эти модули позволяют создать шаблоны (заготовки) для методов классов, реализующих действия для связываемых функцией tie() скаляров
Tie::SubstrHash Предоставляет табличный хеш-интерфейс к массиву с ключами и записями постоянной длины
Time::Local Содержит две эффективные функции вычисления местного времени (timelocal()) и времени по Гринвичу (timegm())
vars Этот модуль позволяет объявить переменные, имена которых переданы ему в качестве параметров, как глобальные

К оглавлению

Модули CPAN

    Если предлагаемые стандартными модулями Perl средства не подходят для решения поставленной задачи, то прежде чем начинать собственную разработку, рекомендуется обратиться к архиву модулей Perl в Internet по адресу:

   http://www.perl.com/CPAN/modules/

    Здесь расположены свободно распространяемые модули Perl. Рекомендуем перейти по соответствующей ссылке на страницу, где все модули классифицированы по категориям их применения. Ниже мы представляем все перечисленные на ней категории с соответствующим русским переводом:

  1. Module Listing Format (Формат информационной записи о модуле);
  2. Perl Core Modules, Perl Language Extensions and Documentation Tools (Модули ядра Perl, расширения языка Perl и средства документирования);
  3. Development Support (Поддержка разработки);
  4. Operating System Interfaces, Hardware Drivers (Интерфейсы к операционным системам, драйверы устройств);
  5. Networking, Device Control (modems) and InterProcess Communication (Работа в сети, управление модемами и межпроцессное взаимодействие);
  6. Data Types and Data Type Utilities (Типы данных и утилиты работы с типами данных);
  7. Database Interfaces (Интерфейсы баз данных);
  8. User Interfaces (Интерфейсы пользователя);
  9. Interfaces to or Emulations of Other Programming Languages (Интерфейсы к другим языкам программирования или их эмуляция);
  10. File Names, File Systems and File Locking (see also File Handles) (Имена файлов, файловые системы и блокировка файлов (также см. Обработка файлов));
  11. String Processing, Language Text Processing, Parsing and Searching (Обработка строковых данных, обработка текстов, синтаксический разбор и поиск);
  12. Option, Argument, Parameter and Configuration File Processing (Обработка опций, параметров и конфигурационных файлов);
  13. Internationalization and Locale (Локализация программ, многоязыковая поддержка);
  14. Authentication, Security and Encryption (Идентификация пользователя, безопасность и кодирование информации);
  15. World Wide Web, HTML, HTTP, CGI, MIME;
  16. Server and Daemon Utilities (Серверные утилиты и утилиты создания программ-демонов);
  17. Archiving, Compression and Conversion (Архивизация, сжатие и преобразование);
  18. Images, Pixmap and Bitmap Manipulation, Drawing and Graphing (Изображения, обработка битовых и пиксельных растров, графика);
  19. Mail and Usenet News (Почта и группы новостей);
  20. Control Flow Utilities (callbacks and exceptions etc) (Утилиты управления выполнением программ (функции отклика на события, обработка исключений и т. д.));
  21. File Handle, Directory Handle and Input/Output Stream Utilities (Обработка файлов, обработка каталогов и утилиты потокового ввода/вывода);
  22. Microsoft Windows Modules (Модули для операционной системы Microsoft Windows);
  23. Miscellaneous Modules (Разные модули);
  24. Interface Modules to Commercial Software (Модули, предоставляющие интерфейс к коммерческому программному обеспечению).
К оглавлению