Приложение Б
Библиотеки и модули
Для простых программ вы уже теперь можете свободно писать собственные Perl-подпрограммы. Когда же задачи, для решения которых вы применяете Perl,Действительно, другие люди уже написали коды для решения большинства распространенных задач. Более того, они поместили их либо в стандартный дистрибутив Perl, либо в бесплат
Одно из преимуществ использования модулей из стандартного дистрибутива состоит в том, что потом вы можете предоставлять свою программу другим пользователям, при этом не придется предпринимать н
Если вы решите обратиться к стандартной библиотеке, то в конечном итоге сэкономите свое время. Нет никакого смысла вновь изобретать велосипед. Следует понимать, однако, что эта библиотека содержит очень много материала. Одни модули могу
Чтобы прочитать документацию, относящуюся к стандартному модулю, воспользуйтесь программой man или perldoc
# для (большинства) Unix-подобных shell peri -e 'print "@INC\n"'
# для (некоторых) других интерпретаторов команд
peri -e "print join(' ',"@INC),\n"
Вы должны найти модуль в одном из каталогов, перечисленных этой командой.
Терминология
Перед тем как дать перечень всех стандартных модулей, давайте разберемся в терминах.
Пакет
Пакет — это простое устройство управления пространством имен, позволяющее в каждой из двух разных частей Perl-программы иметь свою переменную с именемБиблиотека
Библиотека — это набор подпрограмм определенного назначения. Часто библиотека объявляет себя отдельным пакетом; это позволяет держать в одном месте соответствующие перем
Модуль
Модуль — это библиотека, соответствующая конкретным соглашениям, которая позволяет включать библиотечные подпрограммы в основную программу во время компиляции с помощью
Прагма
Прагма — это модуль, который воздействует не только на фазу выполнения программы, но и на фазу ее компиляции. Считайте, что прагма содержит подсказки компилятору. В отли
Стандартные модули
Ниже приведен перечень всех Perl-прагм и модулей, входящих в текущий дистрибутив языка (версия 5.004). Классификация модул
Таблица Б. 1. Общее программирование: разное
Модуль |
Функция |
autouse |
Задерживает загрузку модуля до его использования |
constant |
Создает константы периода компиляции |
Benchmark |
Проверяет и сравнивает временные параметры выполне |
|
ния кода |
Config |
Позволяет получить информацию о конфигурации Perl |
Env |
Импортирует переменные среды |
English |
Для пунктуационных переменных использует английские имена или имена на языке awk |
FindBin |
Находит путь к выполняемой в данный момент программе |
Getopt::Long |
Осуществляет расширенную обработку опций командной |
|
строки |
Getopt::Std |
Обрабатывает односимвольные ключи и осуществляет их |
|
кластеризацию |
lib |
Манипулирует массивом @INC во время компиляции |
Shell |
Запускает команды shell прозрачно для Perl |
strict |
Ограничивает использование небезопасных конструкций |
Symbol |
Генерирует анонимное развертывание (glob); уточняет |
|
имена переменных |
subs |
Предопределяет имена подпрограмм |
vars |
Предопределяет имена глобальных переменных |
Таблица Б. 2. Общее программирование: обработка ошибок и регистрация
Модуль |
Функция |
Сагр diagnostics sigtrap
Sys::Syslog |
Выдает сообщения об ошибках Включает режим диагностики с выдачей предупреждений
Разрешает обратное прослеживание стека для неожиданных сигналов
Perl-интерфейс к UNIX-вызовам syslog(3) |
Таблица Б.З. Общее программирование: доступ к файлам и их обработка |
Модуль |
Функция |
Cwd DirHandle
Fcnti File::Basename File::CheckTree File:: Copy File::Find File::Path FileCache
FileHandle SelectSaver |
Получает путевое имя текущего рабочего каталога
Выдает методы объектов для работы с дескрипторами каталогов
Загружает С-определения Fcntl.h Разбирает спецификации файлов Выполняет всевозможные проверки для набора файлов Копирует файлы или дескрипторы файлов Обеспечивает просмотр дерева фай
Позволяет одновременно открывать больше файлов, чем разрешает система
Выдает методы объектов для работы с дескрипторами файлов
Сохраняет и восстанавливает выбранный дескриптор файла |
Таблица Б. 4. Общее программирование: классы для операций ввода-вывода |
Модуль |
Функция |
10 IO::File IO::Handle IO::Pipe IO::Seekable IO::Select IO::Socket |
Интерфейс верхнего уровня к классам 10::* Методы объектов для работы с дескрипторами файлов Методы объектов для дескрипторов ввода-вывода Методы объектов
|
Таблица Б. 5. Общее программирование: обработка текста и экранные интерфейсы |
Модуль |
Функция |
locale
Pod::HTML Pod::Text
Search::Dict Term::Cap |
Использует локализацию POSIX для встроенных операций
Конвертирует pod-данные в HTML
Конвертирует pod-данные в форматированный ASCII-текст
Ищет ключ в файле словаря Интерфейс termcap |
Модуль |
Функция |
Term::Complete Text::Abbrev Text::ParseWords Text::Soundex Text::Tabs Text::Wrap |
Модуль завершения слов Создает из списка таблицу сокращений Разбирает текст на лексемы и создает из них массив Реализует алгоритм Soundex, разработанный
|
Таблица Б. 6. Интерфейсы к базам данных |
Модуль |
Функция |
AnyDBMFile DBFile GDBMFile NDBMFile ODBMFile SDBM File |
Создает основу для множества DBM Доступ к Berkeley DB Связанный доступ к библиотеке
|
Таблица Б. 7. Математика |
Модуль |
Функция |
Integer Math::BigFloat Math::BigInt Math::Complex |
Выполняет арифметические операции в целочисленном формате, а не в формате с двойной точностью
Пакет математических операций для чисел с плавающей запятой произвольной длины
Пакет математических операций для целых чисел произвольной длины
Пакет для комплексных чисел |
Таблица Б. 8. World Wide Web |
Модуль |
Функция |
CGI
CGI::Apache CGI::Carp CGI::Fast CGI::Push CGI:: Switch |
Интерфейс Web-сервера (Common Gateway Interface) Поддержка Perl-модуля сервера Apache Ошиб
|
Таблица Б. 9. Сети и межпроцессное взаимодействие |
Модуль |
Функция |
1РС::Ореп2 |
Открывает процесс для чтения и записи |
IPC::Open3 |
Открывает процесс для чтения, записи и обработки ошибок |
Net::Ping |
Проверяет, есть ли данный хост в сети |
Socket |
Загружает С-определения socket.h и манипуляторы структур |
Sys::Hostname |
Пытается получить хост-имя всеми возможными способами |
Таблица Б. 10. Автоматизированный доступ к Comprehensive Perl Archive Network |
Модуль |
Функция |
CPAN |
Простой интерфейс к CPAN |
CPAN::FirstTime |
Утилита для создания файла конфигурации CPAN |
CPAN::Nox |
Запускает CPAN, избегая компилированных расширений |
Таблица Б. 11. Время и локализация |
Модуль |
Функция |
Time:: Local |
Эффективно определяет местное и среднее гринвичское |
|
время |
I18N::Collate |
Сравнивает восьмибитовые скалярные данные |
Таблица Б . 12. Объектные интерфейсы к встроенным функциям |
Модуль |
Функция |
Class::Struct |
Объявляет struct-подобные типы данных как Perl-классы |
File::stat |
Объектный интерфейс к функции stat |
Net::hostent |
Объектный интерфейс к функциям gethost* |
Net::netent |
Объектный интерфейс к функциям getnet* |
Net::protoent |
Объектный интерфейс к функциям getproto* |
Net::servent |
Объектный интерфейс к функциям getserv* |
Time::gmtime |
Объектный интерфейс к функции gmtime |
Time::localtime |
Объектный интерфейс к функции localtime |
Time::tm |
Внутренний объект для Time::{gm,local}time |
User::grent |
Объектный интерфейс к функциям getgr* |
User::pwent |
Объектный интерфейс к функциям getpw* |
Таблица Б. 13. Для разработчиков: автозагрузка и динамическая загрузка |
Модуль |
Функция |
Autoloader |
Загружает функции только по требованию |
AutoSplit |
Разбивает пакет для автозагрузки |
Devel::SelfStubber |
Генерирует заглушки для модуля SelfLoading |
DynaLoader |
Автоматическая динамическая загрузка Perl-модулей |
SelfLoader |
Загружает функции только по требованию |
Таблица Б. 14. Для разработчиков: расширения языка и поддержка разработки платформ |
Модуль |
Функция |
blib |
Определяет структуру каталогов blib во время построения модулей |
ExtUtils::Embed |
Утилиты для встраивания Perl в С-программы |
ExtUtils::Install |
Инсталлирует файлы |
ExtUtils::Liblist |
Определяет библиотеки для использования и по |
|
рядок их использования |
ExtUtils:: MakeMaker |
Создает Makefile для расширения Perl |
ExtUtils: '.Manifest |
Утилиты для написания и проверки файла MANIFEST |
ExtUtils::Miniperl |
Создает С-код для perlmain.c |
ExtUtils: :Mkbootstrap |
Создает файл самозагрузки для использования модулем DynaLoader |
ExtUtils: :Mksymlists |
Пишет файлы опций компоновщика для динами |
|
ческого расширения |
ExtUtils: :MMOS2 |
Методы для отмены UNIX-режима в ExtUtils::MakeMaker |
ExtUtils: :MMUnix |
Методы, используемые модулем ExtUtils::MakeMaker |
ExtUtils::MMVMS |
Методы для отмены UNIX-режима в ExtUtils::MakeMaker |
ExtUtils: :testlib |
Исправляет @INC для использования только что |
|
созданного расширения |
Opcode |
Блокирует коды операций при компиляции Perl- |
|
кода |
ops |
Прагма для использования с модулем Opcode |
POSIX |
Интерфейс к стандарту IEEE 1003.1 |
Safe |
Создает защищенные пространства имен для оценки Perl-кода |
Test:: Harness |
Выполняет стандартные тестовые Perl-сценарии со сбором статистических данных |
vmsish |
Обеспечивает возможности, характерные для VMS |
Таблица Б. 15. Для разработчиков: поддержка объектно-ориентированного программирования |
Модуль |
Функция |
Exporter |
Стандартный метод импорта для модулей |
overload |
Перегружает математические операции Perl |
Tie::RefHash |
Базовый класс для связанных хешей со ссылками в |
|
качестве ключей |
Tie:: Hash |
Содержит определения базового класса для связанных хешей |
Tie:: Scalar |
Содержит определения базового класса для связанных |
|
скаляров |
Tie::StdHash |
Содержит определения базового класса для связанных хешей |
Tie::StdScalar |
Содержит определения базового класса для связанных |
|
скаляров |
Tie::SubstrHash |
Обеспечивает хеширование с фиксированным размером таблицы и фиксированной длиной ключей |
UNIVERSAL |
Базовый класс для всех классов |
CPAN: не только стандартная библиотека
Если вы не можете найти в стандартной библиотеке модуль, соответствующий вашим потребностям, все равно существует вероятность, что кто-то уже написал код, который будет вам полезен. Ест
Вот основные категории модулей, которые можно получить из CPAN:
• Модуль формата листинга.
• Базовые модули Perl, расширения языка и средства документирования.
• Модули, обеспечивающие поддержку разработки.
• Интерфейсы операционных систем.
• Организация сетей, управление устройствами (модемами) и межпроцес-сное взаимодействие.
• Типы данных и утилиты для типов данных.
• Интерфейсы баз данных.
• Пользовательские интерфейсы.
• Интерфейсы к другим языкам программирования и средства эмуляции этих языков.
• Имена файлов, файловые системы и блокировки файлов (см. также дескрипторы файлов).
• Обработка строк, обработка текстов, синтаксический анализ и поиск.
• Обработка опций, аргументов, параметров и файлов конфигурации.
• Интернационализация и локализация.
• Аутентификация, защита и шифрование.
• World Wide Web, HTML, HTTP, CGI, MIME.
• Серверные утилиты и демоны.
• Архивирование, сжатие и преобразование.
• Изображения, манипулирование картами пикселей и растрами, рисование и построение графиков.
• Электронная почта и телеконференции Usenet.
• Утилиты управления потоком (обратные вызовы и исключительные ситуации).
• Утилиты для работы с дескрипторами файлов, дескрипторами каталогов и потоками ввода-вывода.
• Модули для Microsoft Windows.
• Прочие модули.
| Назад | &nbs
|