П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 174969 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 71908 раз(а).

Учебник HTML.
Просмотров 72039 раз(а).

Руководство по PHP5.
Просмотров 42649 раз(а).

Хостинг через призму DNS.
Просмотров 49124 раз(а).

Подборка текстов стандартных документов.
Просмотров 43061 раз(а).

Учебник PHP - Самоучитель
Просмотров 49406 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 49642 раз(а).

Внешние атаки...
Просмотров 40205 раз(а).

Учебник PHP.
Просмотров 35223 раз(а).

SSI в примерах.
Просмотров 26519 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь




Приложение Б: Библиотеки и модули

Для простых программ вы уже теперь можете свободно писать собственные Perl-подпрограммы. Когда же задачи, для решения которых вы применяете Perl, станут более сложными, вам иногда будет приходить в голову мысль: "Кто-то, должно быть, это уже делал". И в подавляющем большинстве случаев вы окажетесь правы.

Действительно, другие люди уже написали коды для решения большинства распространенных задач. Более того, они поместили их либо в стандартный дистрибутив Perl, либо в бесплатно загружаемый архив CPAN. Чтобы использовать этот код (и сэкономить немного времени), вам придется разобраться в том, как пользоваться Perl-библиотекой. Этот вопрос вкратце освещался в главе 19.

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

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

Чтобы прочитать документацию, относящуюся к стандартному модулю, воспользуйтесь программой man или perldoc (если они у вас есть) либо своим Web-броузером, если речь идет о HTML-версиях этой документации. Если ничего не получается, поищите в файлах самого модуля: документация включена в состав каждого модуля (в pod-формате). Чтобы найти модуль у себя в системе, попробуйте выполнить из командной строки следующую Perl-программу:

# для (большинства) Unix-подобных shell
perl -e 'print "@INC\n"'

# для (некоторых) других интерпретаторов команд
perl -e "print join(' ',"@INC),\n"

Вы должны найти модуль в одном из каталогов, перечисленных этой командой.

Терминология

Перед тем как дать перечень всех стандартных модулей, давайте разберемся в терминах.

Пакет

Пакет — это простое устройство управления пространством имен, позволяющее в каждой из двух разных частей Perl-программы иметь свою переменную с именем $fred. Этими пространствами имен управляет объявление package, описанное в главе 5 книги Programming Perl.

Библиотека

Библиотека — это набор подпрограмм определенного назначения. Часто библиотека объявляет себя отдельным пакетом; это позволяет держать в одном месте соответствующие переменные и подпрограммы, чтобы они не мешали другим переменным в вашей программе. Как правило, библиотека старого стиля размещалась в отдельном файле, часто под именем с расширением рl. Библиотечные программы включались в основную программу посредством функции require. He так давно этот подход был заменен использованием модулей (см. следующий абзац), и термин библиотека теперь часто обозначает всю систему модулей, которые поставляются с Perl.

Модуль

Модуль — это библиотека, соответствующая конкретным соглашениям, которая позволяет включать библиотечные подпрограммы в основную программу во время компиляции с помощью директивы use. Имена файлов модулей имеют расширение рт, потому что это необходимо для корректного использования директивы use. Подробно Perl-модули описаны в главе 5 книги Programming 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. Общее программирование: обработка ошибок и регистрация

Модуль Функция
Саrр::diagnostics Выдает сообщения об ошибках. Включает режим диагностики с выдачей предупреждений.
sigtrap Разрешает обратное прослеживание стека для неожиданных сигналов.
Sys::Syslog Perl-интерфейс к UNIX-вызовам syslog(3)

Таблица Б.З. Общее программирование: доступ к файлам и их обработка

Модуль Функция
Pwd Получает путевое имя текущего рабочего каталога
DirHandle Выдает методы объектов для работы с дескрипторами каталогов
Fcnti Загружает С-определения Fcntl.h
File::Basename Разбирает спецификации файлов
File::CheckTree Выполняет всевозможные проверки для набора файлов
File::Copy Копирует файлы или дескрипторы файлов
File::Find Обеспечивает просмотр дерева файлов
File::Path Создает и удаляет ряд каталогов
File::Cache Позволяет одновременно открывать больше файлов, чем разрешает система
FileHandle Выдает методы объектов для работы с дескрипторами файлов
SelectSaver Сохраняет и восстанавливает выбранный дескриптор файла

Таблица Б.4. Общее программирование: классы для операций ввода-вывода

Модуль Функция
IO Интерфейс верхнего уровня к классам IO::*
IO::File Методы объектов для работы с дескрипторами файлов
IO::Handle Методы объектов для дескрипторов ввода-вывода
IO::Pipe Методы объектов для каналов
IO::Seekable Методы для объектов ввода-вывода на базе поиска
IO::Select Объектный интерфейс для выбора
IO::Socket Объектный интерфейс для портов

Таблица Б.5. Общее программирование: обработка текста и экранные интерфейсы

Модуль Функция
locale Использует локализацию POSIX для встроенных операций
Pod::HTML Конвертирует pod-данные в HTML
Pod::Text Конвертирует pod-данные в форматированный ASCII-текст
Search::Dict Ищет ключ в файле словаря
Term::Cap Интерфейс termcap
Term::Complete Модуль завершения слов
Text::Abbrev Создает из списка таблицу сокращений
Text::ParseWords Разбирает текст на лексемы и создает из них массив
Text::Soundex Реализует алгоритм Soundex, разработанный Кнутом
Text::Tabs Раскрывает и сворачивает знаки табуляции
Text::Wrap Выделяет текст в абзац

Таблица Б.6. Интерфейсы к базам данных

Модуль Функция
AnyDBMFile Создает основу для множества DBM
DBFile Доступ к Berkeley DB
GDBMFile Связанный доступ к библиотеке GDBM
NDBMFile Связанный доступ к файлам NDBM
ODBMFile Связанный доступ к файлам ODBM
SDBMFile Связанный доступ к файлам SDBM

Таблица Б.7. Математика

Модуль Функция
Integer Выполняет арифметические операции в целочисленном формате, а не в формате с двойной точностью
Math::BigFloat Пакет математических операций для чисел с плавающей запятой произвольной длины
Math::BigInt Пакет математических операций для целых чисел произвольной длины
Math::Complex Пакет для комплексных чисел

Таблица Б.8. World Wide Web

Модуль Функция
CGI Интерфейс Web-сервера (Common Gateway Interface)
CGI::Apache Поддержка Perl-модуля сервера Apache
CGI::Carp Ошибки сервера регистрации с полезной информацией
CGI::Fast Поддержка FastCGI (устойчивый серверный процесс)
CGI::Push Поддержка "выталкивания" со стороны сервера
CGI::Switch Простой интерфейс для многих типов серверов

Таблица Б.9. Сети и межпроцессное взаимодействие

Модуль Функция
IРС::Ореn2 Открывает процесс для чтения и записи
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: не только стандартная библиотека

Если вы не можете найти в стандартной библиотеке модуль, соответствующий вашим потребностям, все равно существует вероятность, что кто-то уже написал код, который будет вам полезен. Есть много превосходных библиотечных модулей, которые не включены в стандартный дистрибутив — по различным причинам практического, политического и вздорного характера. Чтобы выяснить, что есть в наличии, можно заглянуть в Comprehensive Perl Archive Network (CPAN). О CPAN мы говорили в предисловии.

Вот основные категории модулей, которые можно получить из CPAN:

  • Модуль формата листинга.
  • Базовые модули Perl, расширения языка и средства документирования.
  • Модули, обеспечивающие поддержку разработки.
  • Интерфейсы операционных систем.
  • Организация сетей, управление устройствами (модемами) и межпроцессное взаимодействие.
  • Типы данных и утилиты для типов данных.
  • Интерфейсы баз данных.
  • Пользовательские интерфейсы.
  • Интерфейсы к другим языкам программирования и средства эмуляции этих языков.
  • Имена файлов, файловые системы и блокировки файлов (см. также дескрипторы файлов).
  • Обработка строк, обработка текстов, синтаксический анализ и поиск.
  • Обработка опций, аргументов, параметров и файлов конфигурации.
  • Интернационализация и локализация.
  • Аутентификация, защита и шифрование.
  • World Wide Web, HTML, HTTP, CGI, MIME.
  • Серверные утилиты и демоны.
  • Архивирование, сжатие и преобразование.
  • Изображения, манипулирование картами пикселей и растрами, рисование и построение графиков.
  • Электронная почта и телеконференции Usenet.
  • Утилиты управления потоком (обратные вызовы и исключительные ситуации).
  • Утилиты для работы с дескрипторами файлов, дескрипторами каталогов и потоками ввода-вывода.
  • Модули для Microsoft Windows.
  • Прочие модули.

Назад | Вперед
Содержание (общее) | Содержание раздела



Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru