perlmodlib
СОДЕРЖАНИЕ
НАЗВАНИЕ
perlmodlib - создание новых модулей Perl и поиск существующих
БИБЛИОТЕКА МОДУЛЕЙ PERL
Во многих дистрибутивах Perl включены модули. Описание этих модулей приведено ниже, и все они заканчиваются на .pm. Вы можете обнаружить скомпилированные библиотечные файлы (обычно заканчивающиеся на .so) или небольшие части модулей для автозагрузки (заканчивающиеся на .al); они были автоматически сгенерированы процессом установки. Вы также можете найти в каталоге библиотеки файлы, заканчивающиеся на .pl или .ph. Это старые библиотеки, которые поставляются для того, чтобы старые программы, использующие их, по-прежнему работали. Файлы .pl в конечном итоге будут преобразованы в стандартные модули, а файлы .ph, созданные h2ph, вероятно, превратятся в модули расширений, созданные h2xs. (Некоторые значения .ph могут быть уже доступны через модули POSIX, Errno или Fcntl.) Файл pl2pm в дистрибутиве может помочь в преобразовании, но это просто механический процесс и, следовательно, далёк от безупречности.
Прагматические модули
Они работают примерно как директивы компилятора (прагмы) в том, что они, как правило, влияют на компиляцию вашей программы, и, следовательно, обычно хорошо работают только при использовании в use, или no. Большинство из них обладают лексическим охватом, поэтому внутренний BLOCK может отменить их, сказав:
no integer;
no strict 'refs';
no warnings; что действует до конца этого BLOCK.
Некоторые прагмы имеют лексический охват — обычно те, которые влияют на $^H переменные подсказок. Другие влияют на текущий пакет, например, use vars и use subs, которые позволяют вам предварительно объявить переменные или подпрограммы в определённом файле, а не только в блоке. Такие объявления действуют для всего файла, для которого они были объявлены. Вы не можете отменить их с помощью no vars или no subs.
Ниже приведены определённые прагмы (и их собственная документация).
- attributes
-
Получение/установка атрибутов подпрограммы или переменной
- autodie
-
Замена функций на те, которые завершаются успешно или с ошибкой с лексическим охватом
- autodie::exception
-
Исключения от функций autodie.
- autodie::exception::system
-
Исключения от функции autodie system().
- autodie::hints
-
Предоставление подсказок о пользовательских подпрограммах для autodie
- autodie::skip
-
Пропуск пакета при броске исключений autodie
- autouse
-
Отложить загрузку модулей до использования функции
- base
-
Установить отношение ISA с базовыми классами во время компиляции
- bigint
-
Поддержка BigInteger для Perl
- bignum
-
Поддержка BigNumber для Perl
- bigrat
-
Поддержка BigNumber/BigRational для Perl
- blib
-
Использование неустановленной версии пакета MakeMaker
- bytes
-
Выделение отдельных байтов символов
- charnames
-
Доступ к именам символов Unicode и именованным последовательностям символов; также определяет имена символов
- constant
-
Объявление констант
- deprecate
-
Прагма Perl для устаревания включения модуля в ядро
- diagnostics
-
Вывод подробных предупреждений об ошибках
- encoding
-
Позволяет писать скрипт в кодировках, отличных от ASCII и UTF-8
- encoding::warnings
-
Выдавать предупреждения при неявных преобразованиях кодировок
- experimental
-
Экспериментальные возможности
- feature
-
Включение новых возможностей
- fields
-
Поля класса во время компиляции
- filetest
-
Управление операторами разрешений filetest
- if
-
Включить модуль Perl, если условие выполняется
- integer
-
Использование целочисленной арифметики вместо с плавающей точкой
- less
-
Запрос чего-либо меньше
- lib
-
Управление @INC во время компиляции
- locale
-
Использование или отказ от POSIX локалей для встроенных операций
- mro
-
Порядок разрешения методов
- ok
-
Альтернатива Test::More::use_ok
- open
-
Установка значений по умолчанию для слоёв PerlIO для ввода и вывода
- ops
-
Ограничение небезопасных операций во время компиляции
- overload
-
Пакет для перегрузки операций Perl
- overloading
-
Лексическое управление перегрузкой
- parent
-
Установить отношение ISA с базовыми классами во время компиляции
- re
-
Изменение поведения регулярных выражений
- sigtrap
-
Включение простого обработки сигналов
- sort
-
Управление поведением sort()
- strict
-
Ограничение небезопасных конструкций
- subs
-
Предварительное объявление имён подпрограмм
- threads
-
Потоки Perl на основе интерпретатора
-
Расширение Perl для совместного использования структур данных между потоками
- utf8
-
Включение/выключение UTF-8 (или UTF-EBCDIC) в исходном коде
- vars
-
Предварительное объявление имён глобальных переменных
- version
-
Расширение Perl для объектов версии
- vmsish
-
Управление функциями языка, специфичными для VMS
- warnings
-
Управление необязательными предупреждениями
- warnings::register
-
Функция импорта предупреждений
Стандартные модули
Стандартные, интегрированные модули, как ожидается, будут корректно работать с точки зрения загрязнения пространства имён, поскольку они используют модуль Exporter. Подробности смотрите в их собственной документации.
Возможны случаи, когда не все перечисленные ниже модули установлены на вашей системе. Например, модуль GDBM_File не будет установлен, если у вас отсутствует библиотека gdbm.
- Amiga::ARexx
-
Расширение Perl для поддержки ARexx
- Amiga::Exec
-
Расширение Perl для низкоуровневой поддержки Amiga
- AnyDBM_File
-
Предоставляет фреймворк для нескольких DBM
- App::Cpan
-
Легко взаимодействовать с CPAN из командной строки
- App::Prove
-
Реализует команду
prove. - App::Prove::State
-
Хранение состояния для команды
prove. - App::Prove::State::Result
-
Результаты отдельных наборов тестов.
- App::Prove::State::Result::Test
-
Результаты отдельных тестов.
- Archive::Tar
-
Модуль для манипуляций с архивами tar
- Archive::Tar::File
-
Подкласс для извлечения файлов из памяти из Archive::Tar
- Attribute::Handlers
-
Более простое определение обработчиков атрибутов
- AutoLoader
-
Загрузка подпрограмм только по требованию
- AutoSplit
-
Разделение пакета для автозагрузки
- B
-
Бэкенд компилятора Perl
- B::Concise
-
Проход по дереву синтаксиса Perl, вывод краткой информации об операциях
- B::Deparse
-
Бэкенд компилятора Perl для генерации кода Perl
- B::Op_private
-
Определения флагов OP op_private
- B::Showlex
-
Отображение лексических переменных, используемых в функциях или файлах
- B::Terse
-
Проход по дереву синтаксиса Perl, вывод краткой информации об операциях
- B::Xref
-
Генерирует отчеты о перекрестных ссылках для программ Perl
- Benchmark
-
Измерение времени выполнения кода Perl
-
IO::Socket::IP -
Семейно-нейтральный IP-сокет, поддерживающий как IPv4, так и IPv6
Socket-
Сетевые константы и вспомогательные функции
- CORE
-
Пространство имен для основных функций Perl
- CPAN
-
Запрос, загрузка и сборка модулей Perl с сайтов CPAN
- CPAN::API::HOWTO
-
Справочник по программированию с CPAN.pm
- CPAN::Debug
-
Внутренняя отладка для CPAN.pm
- CPAN::Distroprefs
-
Чтение и сопоставление distroprefs
- CPAN::FirstTime
-
Утилита для инициализации файла CPAN::Config
- CPAN::HandleConfig
-
Внутренняя обработка конфигурации для CPAN.pm
- CPAN::Kwalify
-
Интерфейс между CPAN.pm и Kwalify.pm
- CPAN::Meta
-
Метаданные о распределении CPAN-пакета
- CPAN::Meta::Converter
-
Преобразование структур метаданных CPAN-распределения
- CPAN::Meta::Feature
-
Необязательная функция, предоставляемая CPAN-распределением
- CPAN::Meta::History
-
История изменений спецификации CPAN Meta
- CPAN::Meta::History::Meta_1_0
-
Спецификация метаданных версии 1.0 для META.yml
- CPAN::Meta::History::Meta_1_1
-
Спецификация метаданных версии 1.1 для META.yml
- CPAN::Meta::History::Meta_1_2
-
Спецификация метаданных версии 1.2 для META.yml
- CPAN::Meta::History::Meta_1_3
-
Спецификация метаданных версии 1.3 для META.yml
- CPAN::Meta::History::Meta_1_4
-
Спецификация метаданных версии 1.4 для META.yml
- CPAN::Meta::Merge
-
Слияние фрагментов метаданных CPAN
- CPAN::Meta::Prereqs
-
Набор предварительных требований к распределению по фазам и типу
- CPAN::Meta::Requirements
-
Набор версионных требований для CPAN-распределения
- CPAN::Meta::Spec
-
Спецификация метаданных CPAN-распределения
- CPAN::Meta::Validator
-
Проверка структур метаданных CPAN-распределения
- CPAN::Meta::YAML
-
Чтение и запись подмножества YAML для файлов CPAN Meta
- CPAN::Nox
-
Обёртка вокруг CPAN.pm без использования модулей XS
- CPAN::Plugin
-
Базовый класс для расширений оболочки CPAN
- CPAN::Plugin::Specfile
-
Пример реализации тривиального CPAN::Plugin
- CPAN::Queue
-
Внутренняя поддержка очереди для CPAN.pm
- CPAN::Tarzip
-
Внутренняя обработка архивов tar для CPAN.pm
- CPAN::Version
-
Вспомогательные функции для сравнения версий CPAN
- Carp
-
Альтернативные warn и die для модулей
- Class::Struct
-
Объявление структурных типов данных в виде классов Perl
- Compress::Raw::Bzip2
-
Низкоуровневый интерфейс к библиотеке сжатия bzip2
- Compress::Raw::Zlib
-
Низкоуровневый интерфейс к библиотеке сжатия zlib
- Compress::Zlib
-
Интерфейс к библиотеке сжатия zlib
- Config
-
Доступ к информации о конфигурации Perl
- Config::Extensions
-
Хеш-таблица, содержащая информацию о включенных ядрах расширений.
- Config::Perl::V
-
Структурированный доступ к выводу perl -V
- Cwd
-
Получение пути текущей рабочей директории
- DB
-
Программный интерфейс к API отладки Perl
- DBM_Filter
-
Фильтрование ключей/значений DBM
- DBM_Filter::compress
-
Фильтр для DBM_Filter
- DBM_Filter::encode
-
Фильтр для DBM_Filter
- DBM_Filter::int32
-
Фильтр для DBM_Filter
- DBM_Filter::null
-
Фильтр для DBM_Filter
- DBM_Filter::utf8
-
Фильтр для DBM_Filter
- DB_File
-
Доступ к Berkeley DB версии 1.x из Perl5
- Data::Dumper
-
Представление perl-данных в виде строк, подходящее для печати и
eval - Devel::PPPort
-
Perl/Pollution/Переносимость
- Devel::Peek
-
Инструмент отладки данных для программистов XS
- Devel::SelfStubber
-
Генерация заглушек для модуля SelfLoading
- Digest
-
Модули, которые вычисляют хеши сообщений
- Digest::MD5
-
Perl-интерфейс к алгоритму MD5
- Digest::SHA
-
Perl-расширение для SHA-1/224/256/384/512
- Digest::base
-
Базовый класс для Digest
- Digest::file
-
Вычисление хешей файлов
- DirHandle
-
(устарело) методы объекта для обработчиков каталогов
- Dumpvalue
-
Предоставляет экранный вывод данных Perl.
- DynaLoader
-
Динамическая загрузка C-библиотек в Perl-код
- Encode
-
Кодировки символов в Perl
- Encode::Alias
-
Определения псевдонимов кодировок
- Encode::Byte
-
Однобайтовые кодировки
- Encode::CJKConstants
-
Используется внутри Encode::??::ISO_2022_*
- Encode::CN
-
Китайские кодировки, основанные на Китае
- Encode::CN::HZ
-
Используется внутри Encode::CN
- Encode::Config
-
Используется внутри Encode
- Encode::EBCDIC
-
Кодировки EBCDIC
- Encode::Encoder
-
Объектно-ориентированный кодер
- Encode::Encoding
-
Базовый класс реализации Encode
- Encode::GSM0338
-
Кодировка ESTI GSM 03.38
- Encode::Guess
-
Угадывание кодировки по данным
- Encode::JP
-
Японские кодировки
- Encode::JP::H2Z
-
Используется внутри Encode::JP::2022_JP*
- Encode::JP::JIS7
-
Используется внутри Encode::JP
- Encode::KR
-
Корейские кодировки
- Encode::KR::2022_KR
-
Используется внутри Encode::KR
- Encode::MIME::Header
-
MIME-кодирование для неструктурированного заголовка электронной почты
- Encode::MIME::Name
-
Используется внутри Encode
- Encode::PerlIO
-
Подробное описание Encode и PerlIO
- Encode::Supported
-
Поддерживаемые Encode кодировки
- Encode::Symbol
-
Кодировки символов
- Encode::TW
-
Китайские кодировки, основанные на Тайване
- Encode::Unicode
-
Различные Unicode Transformation Formats
- Encode::Unicode::UTF7
-
Кодировка UTF-7
- English
-
Использование красивых английских (или awk) имён для уродливых переменных с пунктуацией
- Env
-
Модуль Perl, который импортирует переменные окружения как скаляры или массивы
- Errno
-
Системные константы errno
- Exporter
-
Реализует метод импорта по умолчанию для модулей
- Exporter::Heavy
-
Внутренности Exporter
- ExtUtils::CBuilder
-
Компиляция и компоновка C-кода для Perl-модулей
- ExtUtils::CBuilder::Platform::Windows
-
Класс билдера для платформ Windows
- ExtUtils::Command
-
Утилиты для замены стандартных UNIX команд в файлах Makefile и т.д.
- ExtUtils::Command::MM
-
Команды для использования MM в файлах Makefile
- ExtUtils::Constant
-
Генерация XS-кода для импорта констант из C-заголовков
- ExtUtils::Constant::Base
-
Базовый класс для объектов ExtUtils::Constant.
- ExtUtils::Constant::Utils
-
Вспомогательные функции для ExtUtils::Constant.
- ExtUtils::Constant::XS
-
Генерация кода C для констант модулей XS.
- ExtUtils::Embed
-
Утилиты для встраивания Perl в приложения C/C++.
- ExtUtils::Install
-
Установка файлов из одной точки в другую.
- ExtUtils::Installed
-
Управление инвентарем установленных модулей.
- ExtUtils::Liblist
-
Определение используемых библиотек и способы их использования.
- ExtUtils::MM
-
Подстройка ExtUtils::MakeMaker под конкретную операционную систему.
- ExtUtils::MM_AIX
-
Подкласс ExtUtils::MM_Unix, специфичный для AIX.
- ExtUtils::MM_Any
-
Методы ExtUtils::MakeMaker, независимые от платформы.
- ExtUtils::MM_BeOS
-
Методы для переопределения поведения UN*X в ExtUtils::MakeMaker.
- ExtUtils::MM_Cygwin
-
Методы для переопределения поведения UN*X в ExtUtils::MakeMaker.
- ExtUtils::MM_DOS
-
Подкласс ExtUtils::MM_Unix, специфичный для DOS.
- ExtUtils::MM_Darwin
-
Специальное поведение для OS X.
- ExtUtils::MM_MacOS
-
Создание Makefile для MacOS Classic.
- ExtUtils::MM_NW5
-
Методы для переопределения поведения UN*X в ExtUtils::MakeMaker.
- ExtUtils::MM_OS2
-
Методы для переопределения поведения UN*X в ExtUtils::MakeMaker.
- ExtUtils::MM_QNX
-
Подкласс ExtUtils::MM_Unix, специфичный для QNX.
- ExtUtils::MM_UWIN
-
Подкласс ExtUtils::MM_Unix, специфичный для U/WIN.
- ExtUtils::MM_Unix
-
Методы, используемые ExtUtils::MakeMaker.
- ExtUtils::MM_VMS
-
Методы для переопределения поведения UN*X в ExtUtils::MakeMaker.
- ExtUtils::MM_VOS
-
Подкласс ExtUtils::MM_Unix, специфичный для VOS.
- ExtUtils::MM_Win32
-
Методы для переопределения поведения UN*X в ExtUtils::MakeMaker.
- ExtUtils::MM_Win95
-
Методы для настройки MakeMaker для Win9X.
- ExtUtils::MY
-
Подкласс ExtUtils::MakeMaker для кастомизации.
- ExtUtils::MakeMaker
-
Создание Makefile для модуля.
- ExtUtils::MakeMaker::Config
-
Обёртка над Config.pm.
- ExtUtils::MakeMaker::FAQ
-
Часто задаваемые вопросы о MakeMaker.
- ExtUtils::MakeMaker::Locale
-
Встроенный Encode::Locale.
- ExtUtils::MakeMaker::Tutorial
-
Написание модуля с помощью MakeMaker.
- ExtUtils::Manifest
-
Утилиты для создания и проверки файла MANIFEST.
- ExtUtils::Miniperl
-
Генерация кода C для miniperlmain.c и perlmain.c.
- ExtUtils::Mkbootstrap
-
Создание файла bootstrap для использования DynaLoader.
- ExtUtils::Mksymlists
-
Генерация файлов опций для линковки динамических расширений.
- ExtUtils::Packlist
-
Управление файлами .packlist.
- ExtUtils::ParseXS
-
Преобразование Perl XS кода в код C.
- ExtUtils::ParseXS::Constants
-
Значения инициализации для некоторых глобальных переменных.
- ExtUtils::ParseXS::Eval
-
Чистый пакет для вычисления кода.
- ExtUtils::ParseXS::Utilities
-
Подпрограммы, используемые с ExtUtils::ParseXS.
- ExtUtils::Typemaps
-
Чтение/запись/модификация файлов typemap Perl/XS.
- ExtUtils::Typemaps::Cmd
-
Быстрые команды для обработки typemap.
- ExtUtils::Typemaps::InputMap
-
Элемент раздела INPUT typemap.
- ExtUtils::Typemaps::OutputMap
-
Элемент раздела OUTPUT typemap.
- ExtUtils::Typemaps::Type
-
Элемент раздела TYPEMAP typemap.
- ExtUtils::XSSymSet
-
Поддержка множеств имён символов, подходящих для линковщика VMS.
- ExtUtils::testlib
-
Добавление каталогов blib/* в @INC.
- Fatal
-
Замена функций эквивалентами, которые либо завершаются успешно, либо выдают ошибку.
- Fcntl
-
Загрузка определений C Fcntl.h.
- File::Basename
-
Разбор путей к файлам на директорию, имя файла и расширение.
- File::Compare
-
Сравнение файлов или файловых дескрипторов.
- File::Copy
-
Копирование файлов или файловых дескрипторов.
- File::DosGlob
-
Глоббинг в стиле DOS и немного больше.
- File::Fetch
-
Универсальный механизм загрузки файлов.
- File::Find
-
Обход дерева каталогов.
- File::Glob
-
Расширение Perl для функции BSD glob.
- File::GlobMapper
-
Расширение File::Glob для работы с входными и выходными файлами.
- File::Path
-
Создание или удаление древовидных каталогов.
- File::Spec
-
Портативное выполнение операций с именами файлов.
- File::Spec::AmigaOS
-
File::Spec для AmigaOS.
- File::Spec::Cygwin
-
Методы для спецификаций файлов Cygwin.
- File::Spec::Epoc
-
Методы для спецификаций файлов Epoc.
- File::Spec::Functions
-
Портативное выполнение операций с именами файлов.
- File::Spec::Mac
-
File::Spec для Mac OS (Classic).
- File::Spec::OS2
-
Методы для спецификаций файлов OS/2.
- File::Spec::Unix
-
File::Spec для Unix, база для других модулей File::Spec.
- File::Spec::VMS
-
Методы для спецификаций файлов VMS.
- File::Spec::Win32
-
Методы для спецификаций файлов Win32.
- File::Temp
-
Безопасное получение имени и дескриптора временного файла.
- File::stat
-
Интерфейс по имени к встроенным функциям Perl stat().
- FileCache
-
Поддержка большего количества открытых файлов, чем позволяет система.
- FileHandle
-
Предоставление объектных методов для файловых дескрипторов.
- Filter::Simple
-
Упрощённое фильтрации исходного кода.
- Filter::Util::Call
-
Утилитарный модуль Perl для фильтрации исходного кода.
- FindBin
-
Определение каталога исходного скрипта Perl.
- GDBM_File
-
Доступ Perl5 к библиотеке gdbm.
- Getopt::Long
-
Расширенная обработка командных строк.
- Getopt::Std
-
Обработка односимвольных ключей с объединением ключей.
- HTTP::Tiny
-
Маленький, простой и корректный HTTP/1.1 клиент.
- Hash::Util
-
Набор общих утилит для работы с хэшами.
- Hash::Util::FieldHash
-
Поддержка классов «внутреннего» вида.
- I18N::Collate
-
Сравнение данных 8-битных скаляров в соответствии с текущим языком.
- I18N::LangTags
-
Функции для работы с тегами языков в формате RFC3066.
- I18N::LangTags::Detect
-
Определение предпочтений пользователя в отношении языка.
- I18N::LangTags::List
-
Теги и названия языков.
- I18N::Langinfo
-
Получение информации о языке.
- IO
-
Загрузка различных модулей IO.
- IO::Compress::Base
-
Базовый класс для модулей IO::Compress.
- IO::Compress::Bzip2
-
Запись файлов/буферов в формате bzip2.
- IO::Compress::Deflate
-
Запись файлов/буферов в формате RFC 1950.
- IO::Compress::FAQ
-
Часто задаваемые вопросы о IO::Compress.
- IO::Compress::Gzip
-
Запись файлов/буферов в формате RFC 1952.
- IO::Compress::RawDeflate
-
Запись файлов/буферов в формате RFC 1951.
- IO::Compress::Zip
-
Запись файлов/буферов в формате zip.
- IO::Dir
-
Предоставление объектных методов для дескрипторов каталогов.
- IO::File
-
Предоставление объектных методов для файловых дескрипторов.
- IO::Handle
-
Предоставление объектных методов для дескрипторов ввода/вывода.
- IO::Pipe
-
Предоставление объектных методов для каналов.
- IO::Poll
-
Объектный интерфейс к системному вызову poll.
- IO::Seekable
-
Предоставление методов позиционирования для объектов ввода/вывода.
- IO::Select
-
Объектный интерфейс к системному вызову select.
- IO::Socket
-
Объектный интерфейс для сокет-связи.
- IO::Socket::INET
-
Объектный интерфейс для сокетов домена AF_INET.
- IO::Socket::UNIX
-
Объектный интерфейс для сокетов домена AF_UNIX.
- IO::Uncompress::AnyInflate
-
Разархивирование файлов/буферов, сжатых с помощью zlib (zip, gzip).
- IO::Uncompress::AnyUncompress
-
Разархивирование файлов/буферов, сжатых gzip, zip, bzip2 или lzop.
- IO::Uncompress::Base
-
Базовый класс для модулей IO::Uncompress.
- IO::Uncompress::Bunzip2
-
Чтение файлов/буферов в формате bzip2.
- IO::Uncompress::Gunzip
-
Чтение файлов/буферов в формате RFC 1952.
- IO::Uncompress::Inflate
-
Чтение файлов/буферов в формате RFC 1950.
- IO::Uncompress::RawInflate
-
Чтение файлов/буферов в формате RFC 1951.
- IO::Uncompress::Unzip
-
Чтение файлов/буферов в формате zip.
- IO::Zlib
-
Интерфейс в стиле IO к Compress::Zlib.
- IPC::Cmd
-
Упрощение поиска и запуска системных команд
- IPC::Msg
-
Класс объектов IPC SysV Msg
- IPC::Open2
-
Открыть процесс для чтения и записи с использованием open2()
- IPC::Open3
-
Открыть процесс для чтения, записи и обработки ошибок с использованием open3()
- IPC::Semaphore
-
Класс объектов IPC SysV Semaphore
-
Класс объектов IPC SysV Shared Memory
- IPC::SysV
-
Константы и системные вызовы IPC System V
- Internals
-
Зарезервированное специальное пространство имён для внутренних функций
- JSON::PP
-
Чистый модуль Perl, совместимый с JSON::XS.
- JSON::PP::Boolean
-
Модуль-заглушка, предоставляющий JSON::PP::Boolean
- List::Util
-
Набор общих утилитных подпрограмм для списков
- List::Util::XS
-
Указывает, был ли List::Util скомпилирован с компилятором C
- Locale::Maketext
-
Фреймворк для локализации
- Locale::Maketext::Cookbook
-
Рецепты использования Locale::Maketext
- Locale::Maketext::Guts
-
Устаревший модуль для загрузки кода Locale::Maketext utf8
- Locale::Maketext::GutsLoader
-
Устаревший модуль для загрузки кода Locale::Maketext utf8
- Locale::Maketext::Simple
-
Простой интерфейс к Locale::Maketext::Lexicon
- Locale::Maketext::TPJ13
-
Статья о локализации программного обеспечения
- MIME::Base64
-
Кодирование и декодирование строк base64
- MIME::QuotedPrint
-
Кодирование и декодирование строк quoted-printable
- Math::BigFloat
-
Пакет вычислений с плавающей точкой произвольной длины
- Math::BigInt
-
Пакет вычислений с целыми числами/плавающей точкой произвольной длины
- Math::BigInt::Calc
-
Чистый модуль Perl для поддержки Math::BigInt
- Math::BigInt::FastCalc
-
Math::BigInt::Calc с некоторыми XS для большей скорости
- Math::BigInt::Lib
-
Виртуальный базовый класс для библиотек Math::BigInt
- Math::BigRat
-
Рациональные числа произвольной большой длины
- Math::Complex
-
Комплексные числа и связанные с ними математические функции
- Math::Trig
-
Тригонометрические функции
- Memoize
-
Ускорение функций за счёт обмена места на время
- Memoize::AnyDBM_File
-
Модуль-соединитель для предоставления EXISTS для AnyDBM_File для использования Storable
- Memoize::Expire
-
Модуль-плагин для автоматического истечения срока действия кешированных значений
- Memoize::ExpireFile
-
Тест семантики истечения срока действия Memoize
- Memoize::ExpireTest
-
Тест семантики истечения срока действия Memoize
- Memoize::NDBM_File
-
Модуль-соединитель для предоставления EXISTS для NDBM_File для использования Storable
- Memoize::SDBM_File
-
Модуль-соединитель для предоставления EXISTS для SDBM_File для использования Storable
- Memoize::Storable
-
Сохранение кешированных данных в базе данных Storable
- Module::CoreList
-
Модули, поставлявшиеся с версиями Perl
- Module::CoreList::Utils
-
Утилиты, поставлявшиеся с версиями Perl
- Module::Load
-
Динамическое подключающее модули и файлы
- Module::Load::Conditional
-
Поиск информации о модулях/динамическая загрузка во время выполнения
- Module::Loaded
-
Отмечать модули как загруженные или разгруженные
- Module::Metadata
-
Сбор информации о пакетах и POD из файлов модулей Perl
- NDBM_File
-
Связанный доступ к файлам ndbm
- NEXT
-
Предоставление псевдокласса NEXT (и т.д.), позволяющего повторно направлять методы
- Net::Cmd
-
Класс сетевых команд (как используется в FTP, SMTP и т.д.)
- Net::Config
-
Данные локальной конфигурации для libnet
- Net::Domain
-
Попытка определить текущее имя хоста и домен в интернете
- Net::FTP
-
Класс клиента FTP
- Net::FTP::dataconn
-
Класс подключения данных клиента FTP
- Net::NNTP
-
Класс клиента NNTP
- Net::Netrc
-
Объектно-ориентированный интерфейс к файлу netrc пользователя
- Net::POP3
-
Класс клиента Post Office Protocol 3 (RFC1939)
- Net::Ping
-
Проверка доступности удалённого хоста
- Net::SMTP
-
Клиент Simple Mail Transfer Protocol
- Net::Time
-
Интерфейс сетевого клиента для времени и дневного времени
- Net::hostent
-
Интерфейс по имени к встроенным функциям Perl gethost*()
- Net::libnetFAQ
-
Часто задаваемые вопросы о libnet
- Net::netent
-
Интерфейс по имени к встроенным функциям Perl getnet*()
- Net::protoent
-
Интерфейс по имени к встроенным функциям Perl getproto*()
- Net::servent
-
Интерфейс по имени к встроенным функциям Perl getserv*()
- O
-
Общий интерфейс к бэкендам компилятора Perl
- ODBM_File
-
Связанный доступ к файлам odbm
- Opcode
-
Отключить именованные opcodes при компиляции кода Perl
- POSIX
-
Интерфейс Perl к IEEE Std 1003.1
- Params::Check
-
Общий механизм анализа/проверки входных данных.
- Parse::CPAN::Meta
-
Парсинг файлов META.yml и META.json с метаданными CPAN
- Perl::OSType
-
Сопоставление имён операционных систем Perl с общими типами
- PerlIO
-
Загрузчик по требованию для слоёв PerlIO и корень пространства имён PerlIO::*
- PerlIO::encoding
-
Слой кодирования
- PerlIO::mmap
-
Встроенный в память ввод/вывод
- PerlIO::scalar
-
Встроенный в память ввод/вывод, скалярный ввод/вывод
- PerlIO::via
-
Вспомогательный класс для слоёв PerlIO, реализованных на Perl
- PerlIO::via::QuotedPrint
-
Слой PerlIO для строк quoted-printable
- Pod::Checker
-
Проверка документов pod на синтаксические ошибки
- Pod::Escapes
-
Для обработки последовательностей Pod E<...>
- Pod::Find
-
Поиск документов POD в древовидных директориях
- Pod::Functions
-
Группировка функций Perl по образцу perlfunc.pod
- Pod::Html
-
Модуль для преобразования файлов pod в HTML
- Pod::InputObjects
-
Объекты, представляющие абзацы, команды и т.д. входных данных POD
- Pod::Man
-
Преобразование данных POD в отформатированный вход *roff
- Pod::ParseLink
-
Разбор кода форматирования L<> в тексте POD
- Pod::ParseUtils
-
Вспомогательные функции для парсинга и преобразования POD
- Pod::Parser
-
Базовый класс для создания фильтров и переводчиков POD
- Pod::Perldoc
-
Поиск документации Perl в формате Pod.
- Pod::Perldoc::BaseTo
-
Основа для форматировщиков Pod::Perldoc
- Pod::Perldoc::GetOptsOO
-
Настраиваемый анализатор опций для Pod::Perldoc
- Pod::Perldoc::ToANSI
-
Вывод Pod с ANSI цветовыми escape-последовательностями
- Pod::Perldoc::ToChecker
-
Позволяет Perldoc проверять Pod на ошибки
- Pod::Perldoc::ToMan
-
Позволяет Perldoc рендерить Pod как man-страницы
- Pod::Perldoc::ToNroff
-
Позволяет Perldoc преобразовывать Pod в nroff
- Pod::Perldoc::ToPod
-
Позволяет Perldoc рендерить Pod как ... Pod!
- Pod::Perldoc::ToRtf
-
Позволяет Perldoc рендерить Pod как RTF
- Pod::Perldoc::ToTerm
-
Вывод Pod с escape-последовательностями терминала
- Pod::Perldoc::ToText
-
Позволяет Perldoc рендерить Pod как обычный текст
- Pod::Perldoc::ToTk
-
Позволяет Perldoc использовать Tk::Pod для рендеринга Pod
- Pod::Perldoc::ToXml
-
Позволяет Perldoc рендерить Pod как XML
- Pod::PlainText
-
Преобразование данных POD в форматированный ASCII текст
- Pod::Select
-
Извлечение выбранных разделов POD из входных данных
- Pod::Simple
-
Фреймворк для парсинга Pod
- Pod::Simple::Checker
-
Проверка синтаксиса Pod документа
- Pod::Simple::Debug
-
Включение отладки/трассировки в Pod::Simple
- Pod::Simple::DumpAsText
-
Вывести события парсинга Pod в текстовом формате
- Pod::Simple::DumpAsXML
-
Преобразование Pod в XML
- Pod::Simple::HTML
-
Преобразование Pod в HTML
- Pod::Simple::HTMLBatch
-
Преобразование нескольких файлов Pod в несколько HTML файлов
- Pod::Simple::LinkSection
-
Представление атрибутов "раздела" кодов L
- Pod::Simple::Methody
-
Преобразование событий Pod::Simple в вызовы методов
- Pod::Simple::PullParser
-
Интерфейс pull-парсера для парсинга Pod
- Pod::Simple::PullParserEndToken
-
Заключительные токены Pod::Simple::PullParser
- Pod::Simple::PullParserStartToken
-
Начальные токены Pod::Simple::PullParser
- Pod::Simple::PullParserTextToken
-
Текстовые токены Pod::Simple::PullParser
- Pod::Simple::PullParserToken
-
Токены Pod::Simple::PullParser
- Pod::Simple::RTF
-
Форматирование Pod как RTF
- Pod::Simple::Search
-
Поиск документов POD в дереве каталогов
- Pod::Simple::SimpleTree
-
Разбор Pod в простое дерево разбора
- Pod::Simple::Subclassing
-
Написание форматера как подкласс Pod::Simple
- Pod::Simple::Text
-
Форматирование Pod как обычный текст
- Pod::Simple::TextContent
-
Получение текстового содержимого Pod
- Pod::Simple::XHTML
-
Форматирование Pod как валидный XHTML
- Pod::Simple::XMLOutStream
-
Преобразование Pod в XML
- Pod::Text
-
Преобразование данных POD в форматированный текст
- Pod::Text::Color
-
Преобразование данных POD в форматированный цветной текст ASCII
- Pod::Text::Overstrike
-
Преобразование данных POD в форматированный текст с перечеркиванием
- Pod::Text::Termcap
-
Преобразование данных POD в текст ASCII с кодами форматирования
- Pod::Usage
-
Вывод сообщения об использовании из встроенной документации pod
- SDBM_File
-
Связанный доступ к файлам sdbm
- Safe
-
Компиляция и выполнение кода в ограниченных отсеках
- Scalar::Util
-
Подборка общих утилит для скаляров
- Search::Dict
-
Поиск ключа в словаре в файле
- SelectSaver
-
Сохранение и восстановление выбранного дескриптора файла
- SelfLoader
-
Загрузка функций только по требованию
- Storable
-
Сохранение данных структур Perl для последующего использования
- Sub::Util
-
Подборка утилит для подпрограмм и ссылок на код
- Symbol
-
Работа с символами Perl и их именами
- Sys::Hostname
-
Попытка получить имя хоста всеми возможными способами
- Sys::Syslog
-
Интерфейс Perl к вызовам UNIX syslog(3)
- Sys::Syslog::Win32
-
Поддержка Win32 для Sys::Syslog
- TAP::Base
-
Базовый класс, обеспечивающий общие функции для TAP::Parser
- TAP::Formatter::Base
-
Базовый класс для делегатов вывода хэндлеров
- TAP::Formatter::Color
-
Запуск скриптов тестов Perl с использованием цвета
- TAP::Formatter::Console
-
Делегат вывода хэндлера для стандартного консольного вывода
- TAP::Formatter::Console::ParallelSession
-
Делегат вывода хэндлера для параллельного консольного вывода
- TAP::Formatter::Console::Session
-
Делегат вывода хэндлера для стандартного консольного вывода
- TAP::Formatter::File
-
Делегат вывода хэндлера для вывода в файл
- TAP::Formatter::File::Session
-
Делегат вывода хэндлера для вывода в файл
- TAP::Formatter::Session
-
Абстрактный базовый класс для делегатов вывода хэндлеров
- TAP::Harness
-
Запуск скриптов тестов со статистикой
- TAP::Harness::Env
-
Парсинг переменных окружения, относящихся к хэндлеру, где это уместно
- TAP::Object
-
Базовый класс, предоставляющий общие функциональные возможности для всех
TAP::*модулей - TAP::Parser
-
Парсинг выходных данных TAP
- TAP::Parser::Aggregator
-
Агрегирование результатов TAP::Parser
- TAP::Parser::Grammar
-
Грамматика для Протокола тестирования чего угодно.
- TAP::Parser::Iterator
-
Базовый класс для итераторов источника TAP
- TAP::Parser::Iterator::Array
-
Итератор для массиво-ориентированных источников TAP
- TAP::Parser::Iterator::Process
-
Итератор для источников TAP, основанных на процессах
- TAP::Parser::Iterator::Stream
-
Итератор для источников TAP, основанных на дескрипторах файлов
- TAP::Parser::IteratorFactory
-
Определяет объекты SourceHandler, которые следует использовать для данного Source
- TAP::Parser::Multiplexer
-
Мультиплексирование нескольких TAP::Parsers
- TAP::Parser::Result
-
Базовый класс для выходных объектов TAP::Parser
- TAP::Parser::Result::Bailout
-
Токен результата отказа.
- TAP::Parser::Result::Comment
-
Токен результата комментария.
- TAP::Parser::Result::Plan
-
Токен результата плана.
- TAP::Parser::Result::Pragma
-
Токен результата прагмы TAP.
- TAP::Parser::Result::Test
-
Токен результата теста.
- TAP::Parser::Result::Unknown
-
Токен результата неизвестного типа.
- TAP::Parser::Result::Version
-
Токен результата версии синтаксиса TAP.
- TAP::Parser::Result::YAML
-
Токен результата YAML.
- TAP::Parser::ResultFactory
-
Фабрика для создания выходных объектов TAP::Parser
- TAP::Parser::Scheduler
-
Планирование тестов во время параллельного тестирования
- TAP::Parser::Scheduler::Job
-
Одно задание тестирования.
- TAP::Parser::Scheduler::Spinner
-
Задача бездействия.
- TAP::Parser::Source
-
Источник TAP и метаданные о нём
- TAP::Parser::SourceHandler
-
Базовый класс для различных обработчиков источников TAP
- TAP::Parser::SourceHandler::Executable
-
Поток вывода от исполняемого источника TAP
- TAP::Parser::SourceHandler::File
-
Поток TAP из текстового файла.
- TAP::Parser::SourceHandler::Handle
-
Поток TAP из IO::Handle или GLOB.
- TAP::Parser::SourceHandler::Perl
-
Поток TAP из исполняемой программы Perl
- TAP::Parser::SourceHandler::RawTAP
-
Поток вывода от исходного TAP в скалярной/массивовой ссылке.
- TAP::Parser::YAMLish::Reader
-
Чтение данных YAMLish из итератора
- TAP::Parser::YAMLish::Writer
-
Запись данных YAMLish
- Term::ANSIColor
-
Вывод на цветной экран с использованием ANSI escape-последовательностей
- Term::Cap
-
Интерфейс Perl для termcap
- Term::Complete
-
Модуль Perl для автодополнения слов
- Term::ReadLine
-
Интерфейс Perl к различным
readlineпакетам. - Test
-
Обеспечивает простую структуру для написания скриптов тестов
- Test2
-
Фреймворк для написания инструментов тестирования, которые все работают вместе.
- Test2::API
-
Основной интерфейс для написания инструментов тестирования на основе Test2.
- Test2::API::Breakage
-
Что сломано в какой версии
- Test2::API::Context
-
Объект для представления контекста тестирования.
- Test2::API::Instance
-
Объект, используемый Test2::API внутри.
- Test2::API::Stack
-
Объект для управления стеком Test2::Hub
- Test2::Event
-
Базовый класс для событий
- Test2::Event::Bail
-
Отказ!
- Test2::Event::Diag
-
Тип события Diag
- Test2::Event::Encoding
-
Устанавливает кодировку для потока вывода
- Test2::Event::Exception
-
Событие исключения
- Test2::Event::Fail
-
Событие для простого неудачного утверждения
- Test2::Event::Generic
-
Тип общего события.
- Test2::Event::Note
-
Тип события заметки
- Test2::Event::Ok
-
Тип события Ok
- Test2::Event::Pass
-
Событие для простого прошедшего утверждения
- Test2::Event::Plan
-
Событие плана
- Test2::Event::Skip
-
Тип события пропуска
- Test2::Event::Subtest
-
Событие для типов подтестов
- Test2::Event::TAP::Version
-
Событие для версии TAP.
- Test2::Event::V2
-
Событие второго поколения.
- Test2::Event::Waiting
-
Уведомить все процессы/потоки о необходимости завершения работы
- Test2::EventFacet
-
Базовый класс для всех аспектов событий.
- Test2::EventFacet::About
-
Аспект с деталями события.
- Test2::EventFacet::Amnesty
-
Аспект для помилования утверждений.
- Test2::EventFacet::Assert
-
Аспект, представляющий утверждение.
- Test2::EventFacet::Control
-
Аспект для действий и поведения хаба.
- Test2::EventFacet::Error
-
Аспект для ошибок, которые необходимо отобразить.
- Test2::EventFacet::Hub
-
Аспект для хабов, через которые проходит событие.
- Test2::EventFacet::Info
-
Аспект для информации, которая может быть важна для разработчика.
- Test2::EventFacet::Info::Table
-
Промежуточная форма представления таблицы.
- Test2::EventFacet::Meta
-
Аспект для метаданных
- Test2::EventFacet::Parent
-
Аспект для событий, содержащих другие события
- Test2::EventFacet::Plan
-
Аспект для задания плана
- Test2::EventFacet::Render
-
Модуль, определяющий, как отображать событие.
- Test2::EventFacet::Trace
-
Отладочная информация для событий
- Test2::Formatter
-
Пространство имён для форматеров.
- Test2::Formatter::TAP
-
Стандартный форматер TAP
- Test2::Hub
-
Канал, через который проходят все события.
- Test2::Hub::Interceptor
-
Центральный узел, используемый перехватчиком для получения результатов.
- Test2::Hub::Interceptor::Terminator
-
Класс исключений, используемый
- Test2::Hub::Subtest
-
Центральный узел, используемый подтестами
- Test2::IPC
-
Включить IPC для поддержки потоков или форков.
- Test2::IPC::Driver
-
Базовый класс для драйверов Test2 IPC.
- Test2::IPC::Driver::Files
-
Модель временной директории + файлы для конкурентного доступа.
- Test2::Tools::Tiny
-
Небольшой набор инструментов для несчастных душ, которые не могут использовать
- Test2::Transition
-
Примечания к переходу при обновлении до Test2
- Test2::Util
-
Инструменты, используемые Test2 и его друзьями.
- Test2::Util::ExternalMeta
-
Разрешить сторонним инструментам безопасно присоединять метаданные
- Test2::Util::Facets2Legacy
-
Преобразовать данные аспектов в устаревший API событий.
- Test2::Util::HashBase
-
Создать классы на основе хэшей.
- Test2::Util::Trace
-
Устаревший оберточный класс для Test2::EventFacet::Trace.
- Test::Builder
-
Бэкенд для создания библиотек тестов
- Test::Builder::Formatter
-
Подкласс Test::Builder класса Test2::Formatter::TAP
- Test::Builder::IO::Scalar
-
Копия IO::Scalar для Test::Builder
- Test::Builder::Module
-
Базовый класс для модулей тестов
- Test::Builder::Tester
-
Тестирование наборов тестов, созданных с помощью
- Test::Builder::Tester::Color
-
Включить цвет в Test::Builder::Tester
- Test::Builder::TodoDiag
-
Подкласс Test::Builder класса Test2::Event::Diag
- Test::Harness
-
Запуск стандартных скриптов тестов Perl со статистикой
- Test::Harness::Beyond
-
За пределами make test
- Test::More
-
Ещё одна платформа для написания скриптов тестов
- Test::Simple
-
Базовые утилиты для написания тестов.
- Test::Tester
-
Упрощение тестирования модулей тестов, созданных с помощью Test::Builder
- Test::Tester::Capture
-
Помощь в тестировании модулей тестов, созданных с помощью Test::Builder
- Test::Tester::CaptureRunner
-
Помощь в тестировании модулей тестов, созданных с помощью Test::Builder
- Test::Tutorial
-
Руководство по написанию очень простых тестов
- Test::use::ok
-
Альтернатива Test::More::use_ok
- Text::Abbrev
-
Abbrev - создание таблицы сокращений из списка
- Text::Balanced
-
Извлечение текстовых последовательностей с разделителями из строк.
- Text::ParseWords
-
Разбор текста в массив токенов или массив массивов
- Text::Tabs
-
Расширение и сокращение табуляций, как в unix expand(1) и unexpand(1)
- Text::Wrap
-
Перенос строк для создания простых абзацев
- Thread
-
Управление потоками в Perl (только для старого кода)
- Thread::Queue
-
Потокобезопасные очереди
- Thread::Semaphore
-
Потокобезопасные семафоры
- Tie::Array
-
Базовый класс для связанных массивов
- Tie::File
-
Доступ к строкам файла на диске через массив Perl
- Tie::Handle
-
Базовые определения классов для связанных дескрипторов файлов
- Tie::Hash
-
Базовые определения классов для связанных хешей
- Tie::Hash::NamedCapture
-
Буферы именованного захвата регулярных выражений
- Tie::Memoize
-
Добавление данных в хеш при необходимости
- Tie::RefHash
-
Использование ссылок в качестве ключей хешей
- Tie::Scalar
-
Базовые определения классов для связанных скаляров
- Tie::StdHandle
-
Базовые определения классов для связанных дескрипторов файлов
- Tie::SubstrHash
-
Хэширование с фиксированным размером таблицы и длиной ключа
- Time::HiRes
-
Таймеры высокой точности для сигналов, сна и получения времени, интервальные таймеры
- Time::Local
-
Эффективное вычисление времени по местному и Гринвичскому времени
- Time::Piece
-
Объектно-ориентированные объекты времени
- Time::Seconds
-
Простой API для преобразования секунд в другие значения даты
- Time::gmtime
-
Интерфейс по имени к встроенной функции Perl gmtime()
- Time::localtime
-
Интерфейс по имени к встроенной функции Perl localtime()
- Time::tm
-
Внутренний объект, используемый Time::gmtime и Time::localtime
- UNIVERSAL
-
Базовый класс для ВСЕХ классов (объектов ссылок)
- Unicode::Collate
-
Алгоритм сортировки Юникода
- Unicode::Collate::CJK::Big5
-
Весовой коэффициент для CJK Unified Ideographs
- Unicode::Collate::CJK::GB2312
-
Весовой коэффициент для CJK Unified Ideographs
- Unicode::Collate::CJK::JISX0208
-
Весовой коэффициент для JIS KANJI для Unicode::Collate
- Unicode::Collate::CJK::Korean
-
Весовой коэффициент для CJK Unified Ideographs
- Unicode::Collate::CJK::Pinyin
-
Весовой коэффициент для CJK Unified Ideographs
- Unicode::Collate::CJK::Stroke
-
Весовой коэффициент для CJK Unified Ideographs
- Unicode::Collate::CJK::Zhuyin
-
Весовой коэффициент для CJK Unified Ideographs
- Unicode::Collate::Locale
-
Языковая настройка для DUCET через Unicode::Collate
- Unicode::Normalize
-
Формы нормализации Юникода
- Unicode::UCD
-
База данных символов Юникода
- User::grent
-
Интерфейс по имени к встроенным функциям Perl getgr*
- User::pwent
-
Интерфейс по имени к встроенным функциям Perl getpw*
- VMS::DCLsym
-
Расширение Perl для работы с символами DCL
- VMS::Filespec
-
Преобразование между VMS и Unix синтаксисом спецификаций файлов
- VMS::Stdio
-
Стандартные функции ввода/вывода через расширения VMS
- Win32
-
Интерфейсы к некоторым функциям Win32 API
- Win32API::File
-
Прямой доступ к вызовам Win32 API для файлов/каталогов.
- Win32CORE
-
Заглушки для функций Win32 CORE
- XS::APItest
-
Тестирование API Perl C
- XS::Typemap
-
Модуль для тестирования таблиц типов XS, поставляемых с Perl
- XSLoader
-
Динамическая загрузка библиотек C в код Perl
- autodie::Scope::Guard
-
Обёртка класса для вызова подпрограмм в конце области видимости
- autodie::Scope::GuardStack
-
Стек хуков для управления областями видимости через %^H
- autodie::Util
-
Внутренние вспомогательные подпрограммы для autodie и Fatal
- version::Internals
-
Расширение Perl для объектов версии
Чтобы узнать все установленные на вашей системе модули, включая те, у которых нет документации или которые находятся вне стандартного релиза, просто используйте следующую команду (в стандартной оболочке Win32 следует использовать двойные кавычки вместо одинарных).
% perl -MFile::Find=find -MFile::Spec::Functions -Tlwe \
'find { wanted => sub { print canonpath $_ if /\.pm\z/ },
no_chdir => 1 }, @INC' (Флаг -T нужен для предотвращения перечисления '.' в @INC.) У них все должны быть установлены собственные справочные материалы и доступны через команду man(1) вашей системы. Если у вас нет программы find, вы можете использовать программу Perl find2perl вместо неё, которая генерирует Perl-код для запуска через perl. Если у вас есть программа man, но она не находит ваши модули, вам придётся настроить путь к man. Смотрите perl для получения подробностей. Если у вас нет системной команды man, попробуйте программу perldoc.
Обратите также внимание, что команда perldoc perllocal даёт вам (возможно, неполный) список модулей, которые были дополнительно установлены на вашей системе. (Файл perllocal.pod обновляется стандартным процессом установки MakeMaker.)
Модули расширения
Модули расширения написаны на C (или сочетании Perl и C). Они обычно динамически загружаются в Perl по мере необходимости, но также могут быть статически связаны. Поддерживаемые модули расширения включают Socket, Fcntl и POSIX.
Многие популярные модули расширения на C не входят в стандартный комплект (по крайней мере, не полностью) из-за их размера, изменчивости или просто отсутствия времени для надлежащего тестирования и настройки на множестве платформ, на которых Perl проходил бета-тестирование. Рекомендуется искать их на CPAN (описано ниже) или с помощью поисковых систем в интернете, таких как Google или DuckDuckGo.
CPAN
CPAN расшифровывается как Comprehensive Perl Archive Network; это глобально реплицированный архив Perl-материалов, включая документацию, руководства по стилю, советы и ловушки, альтернативные порты для систем, не являющихся Unix, и время от времени бинарные дистрибутивы для них. Поисковые системы для CPAN можно найти на http://www.cpan.org/
Самое главное, CPAN включает около тысячи не входящих в комплект модулей, некоторые из которых требуют компилятора C для сборки. Основные категории модулей:
-
Расширения языка и инструменты документации
-
Поддержка разработки
-
Интерфейсы операционных систем
-
Сети, управление устройствами (модемами) и межпроцессное взаимодействие
-
Типы данных и утилиты для работы с типами данных
-
Интерфейсы баз данных
-
Пользовательские интерфейсы
-
Интерфейсы к другим языкам программирования / эмуляция других языков программирования
-
Имена файлов, файловые системы и блокировка файлов (см. также дескрипторы файлов)
-
Обработка строк, обработка текстов языка, парсинг и поиск
-
Обработка опций, аргументов, параметров и конфигурационных файлов
-
Международная поддержка и локаль
-
Аутентификация, безопасность и шифрование
-
Всемирная паутина, HTML, HTTP, CGI, MIME
-
Утилиты для серверов и демонов
-
Архивирование и сжатие
-
Обработка изображений, растровых и битовых изображений, рисование и построение графиков
-
Почта и новостные группы Usenet
-
Утилиты управления потоком выполнения (обратные вызовы и исключения и т.д.)
-
Утилиты для работы с дескрипторами файлов и потоками ввода/вывода
-
Разнообразные модули
Следующий список зарегистрированных сайтов CPAN. Обратите внимание, что порядок сортировки — по алфавиту полей:
Континент | |-->Страна | |-->[штат/провинция] | |-->ftp | |-->[http]
и поэтому североамериканские серверы оказываются расположены между европейскими и южноамериканскими сайтами.
Зарегистрированные сайты CPAN
Африка
- Южная Африка
-
http://mirror.is.co.za/pub/cpan/ ftp://ftp.is.co.za/pub/cpan/ http://cpan.mirror.ac.za/ ftp://cpan.mirror.ac.za/ http://cpan.saix.net/ ftp://ftp.saix.net/pub/CPAN/ http://ftp.wa.co.za/pub/CPAN/ ftp://ftp.wa.co.za/pub/CPAN/ - Уганда
-
http://mirror.ucu.ac.ug/cpan/ - Зимбабве
-
http://mirror.zol.co.zw/CPAN/ ftp://mirror.zol.co.zw/CPAN/
Азия
- Бангладеш
-
http://mirror.dhakacom.com/CPAN/ ftp://mirror.dhakacom.com/CPAN/ - Китай
-
http://cpan.communilink.net/ http://ftp.cuhk.edu.hk/pub/packages/perl/CPAN/ ftp://ftp.cuhk.edu.hk/pub/packages/perl/CPAN/ http://mirrors.hust.edu.cn/CPAN/ http://mirrors.neusoft.edu.cn/cpan/ http://mirror.lzu.edu.cn/CPAN/ http://mirrors.163.com/cpan/ http://mirrors.sohu.com/CPAN/ http://mirrors.ustc.edu.cn/CPAN/ ftp://mirrors.ustc.edu.cn/CPAN/ http://mirrors.xmu.edu.cn/CPAN/ ftp://mirrors.xmu.edu.cn/CPAN/ http://mirrors.zju.edu.cn/CPAN/ - Индия
-
http://cpan.excellmedia.net/ http://perlmirror.indialinks.com/ - Индонезия
-
http://kambing.ui.ac.id/cpan/ http://cpan.pesat.net.id/ http://mirror.poliwangi.ac.id/CPAN/ http://kartolo.sby.datautama.net.id/CPAN/ http://mirror.wanxp.id/cpan/ - Иран
-
http://mirror.yazd.ac.ir/cpan/ - Израиль
-
http://biocourse.weizmann.ac.il/CPAN/ - Япония
-
http://ftp.jaist.ac.jp/pub/CPAN/ ftp://ftp.jaist.ac.jp/pub/CPAN/ http://mirror.jre655.com/CPAN/ ftp://mirror.jre655.com/CPAN/ ftp://ftp.kddilabs.jp/CPAN/ http://ftp.nara.wide.ad.jp/pub/CPAN/ ftp://ftp.nara.wide.ad.jp/pub/CPAN/ http://ftp.riken.jp/lang/CPAN/ ftp://ftp.riken.jp/lang/CPAN/ ftp://ftp.u-aizu.ac.jp/pub/CPAN/ http://ftp.yz.yamagata-u.ac.jp/pub/lang/cpan/ ftp://ftp.yz.yamagata-u.ac.jp/pub/lang/cpan/ - Казахстан
-
http://mirror.neolabs.kz/CPAN/ ftp://mirror.neolabs.kz/CPAN/ - Филиппины
-
http://mirror.pregi.net/CPAN/ ftp://mirror.pregi.net/CPAN/ http://mirror.rise.ph/cpan/ ftp://mirror.rise.ph/cpan/ - Катар
-
http://mirror.qnren.qa/CPAN/ ftp://mirror.qnren.qa/CPAN/ - Республика Корея
-
http://cpan.mirror.cdnetworks.com/ ftp://cpan.mirror.cdnetworks.com/CPAN/ http://ftp.kaist.ac.kr/pub/CPAN/ ftp://ftp.kaist.ac.kr/CPAN/ http://ftp.kr.freebsd.org/pub/CPAN/ ftp://ftp.kr.freebsd.org/pub/CPAN/ http://mirror.navercorp.com/CPAN/ http://ftp.neowiz.com/CPAN/ ftp://ftp.neowiz.com/CPAN/ - Сингапур
-
http://cpan.mirror.choon.net/ http://mirror.0x.sg/CPAN/ ftp://mirror.0x.sg/CPAN/ - Тайвань
-
http://cpan.cdpa.nsysu.edu.tw/Unix/Lang/CPAN/ ftp://cpan.cdpa.nsysu.edu.tw/Unix/Lang/CPAN/ http://cpan.stu.edu.tw/ ftp://ftp.stu.edu.tw/CPAN/ http://ftp.yzu.edu.tw/CPAN/ ftp://ftp.yzu.edu.tw/CPAN/ http://cpan.nctu.edu.tw/ ftp://cpan.nctu.edu.tw/ http://ftp.ubuntu-tw.org/mirror/CPAN/ ftp://ftp.ubuntu-tw.org/mirror/CPAN/ - Турция
-
http://cpan.ulak.net.tr/ ftp://ftp.ulak.net.tr/pub/perl/CPAN/ http://mirror.vit.com.tr/mirror/CPAN/ ftp://mirror.vit.com.tr/CPAN/ - Вьетнам
-
http://mirrors.digipower.vn/CPAN/ http://mirror.downloadvn.com/cpan/ http://mirrors.vinahost.vn/CPAN/
Европа
- Австрия
-
http://cpan.inode.at/ ftp://cpan.inode.at/ http://mirror.easyname.at/cpan/ ftp://mirror.easyname.at/cpan/ http://gd.tuwien.ac.at/languages/perl/CPAN/ ftp://gd.tuwien.ac.at/pub/CPAN/ - Беларусь
-
http://ftp.byfly.by/pub/CPAN/ ftp://ftp.byfly.by/pub/CPAN/ http://mirror.datacenter.by/pub/CPAN/ ftp://mirror.datacenter.by/pub/CPAN/ - Бельгия
-
http://ftp.belnet.be/ftp.cpan.org/ ftp://ftp.belnet.be/mirror/ftp.cpan.org/ http://cpan.cu.be/ http://lib.ugent.be/CPAN/ http://cpan.weepeetelecom.be/ - Босния и Герцеговина
-
http://cpan.mirror.ba/ ftp://ftp.mirror.ba/CPAN/ - Болгария
-
http://mirrors.neterra.net/CPAN/ ftp://mirrors.neterra.net/CPAN/ http://mirrors.netix.net/CPAN/ ftp://mirrors.netix.net/CPAN/ - Хорватия
-
http://ftp.carnet.hr/pub/CPAN/ ftp://ftp.carnet.hr/pub/CPAN/ - Чехия
-
http://mirror.dkm.cz/cpan/ ftp://mirror.dkm.cz/cpan/ ftp://ftp.fi.muni.cz/pub/CPAN/ http://mirrors.nic.cz/CPAN/ ftp://mirrors.nic.cz/pub/CPAN/ http://cpan.mirror.vutbr.cz/ ftp://mirror.vutbr.cz/cpan/ - Дания
-
http://www.cpan.dk/ http://mirrors.dotsrc.org/cpan/ ftp://mirrors.dotsrc.org/cpan/ - Финляндия
-
ftp://ftp.funet.fi/pub/languages/perl/CPAN/ - Франция
-
http://ftp.ciril.fr/pub/cpan/ ftp://ftp.ciril.fr/pub/cpan/ http://distrib-coffee.ipsl.jussieu.fr/pub/mirrors/cpan/ ftp://distrib-coffee.ipsl.jussieu.fr/pub/mirrors/cpan/ http://ftp.lip6.fr/pub/perl/CPAN/ ftp://ftp.lip6.fr/pub/perl/CPAN/ http://mirror.ibcp.fr/pub/CPAN/ ftp://ftp.oleane.net/pub/CPAN/ http://cpan.mirrors.ovh.net/ftp.cpan.org/ ftp://cpan.mirrors.ovh.net/ftp.cpan.org/ http://cpan.enstimac.fr/ - Германия
-
http://mirror.23media.de/cpan/ ftp://mirror.23media.de/cpan/ http://artfiles.org/cpan.org/ ftp://artfiles.org/cpan.org/ http://mirror.bibleonline.ru/cpan/ http://mirror.checkdomain.de/CPAN/ ftp://mirror.checkdomain.de/CPAN/ http://cpan.noris.de/ http://mirror.de.leaseweb.net/CPAN/ ftp://mirror.de.leaseweb.net/CPAN/ http://cpan.mirror.euserv.net/ ftp://mirror.euserv.net/cpan/ http://ftp-stud.hs-esslingen.de/pub/Mirrors/CPAN/ ftp://mirror.fraunhofer.de/CPAN/ ftp://ftp.freenet.de/pub/ftp.cpan.org/pub/CPAN/ http://ftp.hosteurope.de/pub/CPAN/ ftp://ftp.hosteurope.de/pub/CPAN/ ftp://ftp.fu-berlin.de/unix/languages/perl/ http://ftp.gwdg.de/pub/languages/perl/CPAN/ ftp://ftp.gwdg.de/pub/languages/perl/CPAN/ http://ftp.hawo.stw.uni-erlangen.de/CPAN/ ftp://ftp.hawo.stw.uni-erlangen.de/CPAN/ http://cpan.mirror.iphh.net/ ftp://cpan.mirror.iphh.net/pub/CPAN/ ftp://ftp.mpi-inf.mpg.de/pub/perl/CPAN/ http://cpan.netbet.org/ http://mirror.netcologne.de/cpan/ ftp://mirror.netcologne.de/cpan/ ftp://mirror.petamem.com/CPAN/ http://www.planet-elektronik.de/CPAN/ http://ftp.halifax.rwth-aachen.de/cpan/ ftp://ftp.halifax.rwth-aachen.de/cpan/ http://mirror.softaculous.com/cpan/ http://ftp.u-tx.net/CPAN/ ftp://ftp.u-tx.net/CPAN/ http://mirror.reismil.ch/CPAN/ - Греция
-
http://cpan.cc.uoc.gr/mirrors/CPAN/ ftp://ftp.cc.uoc.gr/mirrors/CPAN/ http://ftp.ntua.gr/pub/lang/perl/ ftp://ftp.ntua.gr/pub/lang/perl/ - Венгрия
-
http://mirror.met.hu/CPAN/ - Ирландия
-
http://ftp.heanet.ie/mirrors/ftp.perl.org/pub/CPAN/ ftp://ftp.heanet.ie/mirrors/ftp.perl.org/pub/CPAN/ - Италия
-
http://bo.mirror.garr.it/mirrors/CPAN/ ftp://ftp.eutelia.it/CPAN_Mirror/ http://cpan.panu.it/ ftp://ftp.panu.it/pub/mirrors/perl/CPAN/ http://cpan.muzzy.it/ - Латвия
-
http://kvin.lv/pub/CPAN/ - Литва
-
http://ftp.litnet.lt/pub/CPAN/ ftp://ftp.litnet.lt/pub/CPAN/ - Молдова
-
http://mirror.as43289.net/pub/CPAN/ ftp://mirror.as43289.net/pub/CPAN/ - Нидерланды
-
http://cpan.cs.uu.nl/ ftp://ftp.cs.uu.nl/pub/CPAN/ http://mirror.nl.leaseweb.net/CPAN/ ftp://mirror.nl.leaseweb.net/CPAN/ http://ftp.nluug.nl/languages/perl/CPAN/ ftp://ftp.nluug.nl/pub/languages/perl/CPAN/ http://mirror.transip.net/CPAN/ ftp://mirror.transip.net/CPAN/ http://cpan.mirror.triple-it.nl/ http://ftp.tudelft.nl/cpan/ ftp://ftp.tudelft.nl/pub/CPAN/ ftp://download.xs4all.nl/pub/mirror/CPAN/ - Норвегия
-
http://cpan.uib.no/ ftp://cpan.uib.no/pub/CPAN/ ftp://ftp.uninett.no/pub/languages/perl/CPAN/ http://cpan.vianett.no/ - Польша
-
http://ftp.agh.edu.pl/CPAN/ ftp://ftp.agh.edu.pl/CPAN/ http://ftp.piotrkosoft.net/pub/mirrors/CPAN/ ftp://ftp.piotrkosoft.net/pub/mirrors/CPAN/ ftp://ftp.ps.pl/pub/CPAN/ http://sunsite.icm.edu.pl/pub/CPAN/ ftp://sunsite.icm.edu.pl/pub/CPAN/ - Португалия
-
http://cpan.dcc.fc.up.pt/ http://mirrors.fe.up.pt/pub/CPAN/ http://cpan.perl-hackers.net/ http://cpan.perl.pt/ - Румыния
-
http://mirrors.hostingromania.ro/cpan.org/ ftp://ftp.lug.ro/CPAN/ http://mirrors.m247.ro/CPAN/ http://mirrors.evowise.com/CPAN/ http://mirrors.teentelecom.net/CPAN/ ftp://mirrors.teentelecom.net/CPAN/ http://mirrors.xservers.ro/CPAN/ - Российская Федерация
-
ftp://ftp.aha.ru/CPAN/ http://cpan.rinet.ru/ ftp://cpan.rinet.ru/pub/mirror/CPAN/ http://cpan-mirror.rbc.ru/pub/CPAN/ http://mirror.rol.ru/CPAN/ http://cpan.uni-altai.ru/ http://cpan.webdesk.ru/ ftp://cpan.webdesk.ru/cpan/ http://mirror.yandex.ru/mirrors/cpan/ ftp://mirror.yandex.ru/mirrors/cpan/ - Сербия
-
http://mirror.sbb.rs/CPAN/ ftp://mirror.sbb.rs/CPAN/ - Словакия
-
http://cpan.lnx.sk/ http://tux.rainside.sk/CPAN/ ftp://tux.rainside.sk/CPAN/ - Словения
-
http://ftp.arnes.si/software/perl/CPAN/ ftp://ftp.arnes.si/software/perl/CPAN/ - Испания
-
http://mirrors.evowise.com/CPAN/ http://osl.ugr.es/CPAN/ http://ftp.rediris.es/mirror/CPAN/ ftp://ftp.rediris.es/mirror/CPAN/ - Швеция
-
http://ftp.acc.umu.se/mirror/CPAN/ ftp://ftp.acc.umu.se/mirror/CPAN/ - Швейцария
-
http://www.pirbot.com/mirrors/cpan/ http://mirror.switch.ch/ftp/mirror/CPAN/ ftp://mirror.switch.ch/mirror/CPAN/ - Украина
-
http://cpan.ip-connect.vn.ua/ ftp://cpan.ip-connect.vn.ua/mirror/cpan/ - Соединенное Королевство
-
http://cpan.mirror.anlx.net/ ftp://ftp.mirror.anlx.net/CPAN/ http://mirror.bytemark.co.uk/CPAN/ ftp://mirror.bytemark.co.uk/CPAN/ http://mirrors.coreix.net/CPAN/ http://cpan.etla.org/ ftp://cpan.etla.org/pub/CPAN/ http://cpan.cpantesters.org/ http://mirror.sax.uk.as61049.net/CPAN/ http://mirror.sov.uk.goscomb.net/CPAN/ http://www.mirrorservice.org/sites/cpan.perl.org/CPAN/ ftp://ftp.mirrorservice.org/sites/cpan.perl.org/CPAN/ http://mirror.ox.ac.uk/sites/www.cpan.org/ ftp://mirror.ox.ac.uk/sites/www.cpan.org/ http://ftp.ticklers.org/pub/CPAN/ ftp://ftp.ticklers.org/pub/CPAN/ http://cpan.mirrors.uk2.net/ ftp://mirrors.uk2.net/pub/CPAN/ http://mirror.ukhost4u.com/CPAN/
Северная Америка
- Канада
-
http://CPAN.mirror.rafal.ca/ ftp://CPAN.mirror.rafal.ca/pub/CPAN/ http://mirror.csclub.uwaterloo.ca/CPAN/ ftp://mirror.csclub.uwaterloo.ca/CPAN/ http://mirrors.gossamer-threads.com/CPAN/ http://mirror.its.dal.ca/cpan/ ftp://mirror.its.dal.ca/cpan/ ftp://ftp.ottix.net/pub/CPAN/ - Коста-Рика
-
http://mirrors.ucr.ac.cr/CPAN/ - Мексика
-
http://www.msg.com.mx/CPAN/ ftp://ftp.msg.com.mx/pub/CPAN/ - Соединенные Штаты
-
- Алабама
-
http://mirror.teklinks.com/CPAN/ - Аризона
-
http://mirror.n5tech.com/CPAN/ http://mirrors.namecheap.com/CPAN/ ftp://mirrors.namecheap.com/CPAN/ - Калифорния
-
http://cpan.develooper.com/ http://httpupdate127.cpanel.net/CPAN/ http://mirrors.sonic.net/cpan/ ftp://mirrors.sonic.net/cpan/ http://www.perl.com/CPAN/ http://cpan.yimg.com/ - Айдахо
-
http://mirrors.syringanetworks.net/CPAN/ ftp://mirrors.syringanetworks.net/CPAN/ - Иллинойс
-
http://cpan.mirrors.hoobly.com/ http://mirror.team-cymru.org/CPAN/ ftp://mirror.team-cymru.org/CPAN/ - Индиана
-
http://cpan.netnitco.net/ ftp://cpan.netnitco.net/pub/mirrors/CPAN/ ftp://ftp.uwsg.iu.edu/pub/perl/CPAN/ - Канзас
-
http://mirrors.concertpass.com/cpan/ - Массачусетс
-
http://mirrors.ccs.neu.edu/CPAN/ - Мичиган
-
http://cpan.cse.msu.edu/ ftp://cpan.cse.msu.edu/ http://httpupdate118.cpanel.net/CPAN/ http://mirrors-usa.go-parts.com/cpan/ http://ftp.wayne.edu/CPAN/ ftp://ftp.wayne.edu/CPAN/ - Нью-Гэмпшир
-
http://mirror.metrocast.net/cpan/ - Нью-Джерси
-
http://mirror.datapipe.net/CPAN/ ftp://mirror.datapipe.net/pub/CPAN/ http://www.hoovism.com/CPAN/ ftp://ftp.hoovism.com/CPAN/ http://cpan.mirror.nac.net/ - Нью-Йорк
-
http://mirror.cc.columbia.edu/pub/software/cpan/ ftp://mirror.cc.columbia.edu/pub/software/cpan/ http://cpan.belfry.net/ http://cpan.erlbaum.net/ ftp://cpan.erlbaum.net/CPAN/ http://cpan.hexten.net/ ftp://cpan.hexten.net/ http://mirror.nyi.net/CPAN/ ftp://mirror.nyi.net/pub/CPAN/ http://noodle.portalus.net/CPAN/ ftp://noodle.portalus.net/CPAN/ http://mirrors.rit.edu/CPAN/ ftp://mirrors.rit.edu/CPAN/ - Северная Каролина
-
http://httpupdate140.cpanel.net/CPAN/ http://mirrors.ibiblio.org/CPAN/ - Орегон
-
http://ftp.osuosl.org/pub/CPAN/ ftp://ftp.osuosl.org/pub/CPAN/ http://mirror.uoregon.edu/CPAN/ - Пенсильвания
-
http://cpan.pair.com/ ftp://cpan.pair.com/pub/CPAN/ http://cpan.mirrors.ionfish.org/ - Южная Каролина
-
http://cpan.mirror.clemson.edu/ - Техас
-
http://mirror.uta.edu/CPAN/ - Юта
-
http://cpan.cs.utah.edu/ ftp://cpan.cs.utah.edu/CPAN/ ftp://mirror.xmission.com/CPAN/ - Вирджиния
-
http://mirror.cogentco.com/pub/CPAN/ ftp://mirror.cogentco.com/pub/CPAN/ http://mirror.jmu.edu/pub/CPAN/ ftp://mirror.jmu.edu/pub/CPAN/ http://mirror.us.leaseweb.net/CPAN/ ftp://mirror.us.leaseweb.net/CPAN/ - Вашингтон
-
http://cpan.llarian.net/ ftp://cpan.llarian.net/pub/CPAN/ - Висконсин
-
http://cpan.mirrors.tds.net/ ftp://cpan.mirrors.tds.net/pub/CPAN/
Океания
- Австралия
-
http://mirror.as24220.net/pub/cpan/ ftp://mirror.as24220.net/pub/cpan/ http://cpan.mirrors.ilisys.com.au/ http://cpan.mirror.digitalpacific.com.au/ ftp://mirror.internode.on.net/pub/cpan/ http://mirror.optusnet.com.au/CPAN/ http://cpan.mirror.serversaustralia.com.au/ http://cpan.uberglobalmirror.com/ http://mirror.waia.asn.au/pub/cpan/ - Новая Каледония
-
http://cpan.lagoon.nc/pub/CPAN/ ftp://cpan.lagoon.nc/pub/CPAN/ http://cpan.nautile.nc/CPAN/ ftp://cpan.nautile.nc/CPAN/ - Новая Зеландия
-
ftp://ftp.auckland.ac.nz/pub/perl/CPAN/ http://cpan.catalyst.net.nz/CPAN/ ftp://cpan.catalyst.net.nz/pub/CPAN/ http://cpan.inspire.net.nz/ ftp://cpan.inspire.net.nz/cpan/ http://mirror.webtastix.net/CPAN/ ftp://mirror.webtastix.net/CPAN/
Южная Америка
- Аргентина
-
http://cpan.mmgdesigns.com.ar/ - Бразилия
-
http://cpan.kinghost.net/ http://linorg.usp.br/CPAN/ http://mirror.nbtelecom.com.br/CPAN/ - Чили
-
http://cpan.dcc.uchile.cl/ ftp://cpan.dcc.uchile.cl/pub/lang/cpan/
Зеркала RSYNC
rsync://ftp.is.co.za/IS-Mirror/ftp.cpan.org/
rsync://mirror.ac.za/CPAN/
rsync://mirror.zol.co.zw/CPAN/
rsync://mirror.dhakacom.com/CPAN/
rsync://mirrors.ustc.edu.cn/CPAN/
rsync://mirrors.xmu.edu.cn/CPAN/
rsync://kambing.ui.ac.id/CPAN/
rsync://ftp.jaist.ac.jp/pub/CPAN/
rsync://mirror.jre655.com/CPAN/
rsync://ftp.kddilabs.jp/cpan/
rsync://ftp.nara.wide.ad.jp/cpan/
rsync://ftp.riken.jp/cpan/
rsync://mirror.neolabs.kz/CPAN/
rsync://mirror.qnren.qa/CPAN/
rsync://ftp.neowiz.com/CPAN/
rsync://mirror.0x.sg/CPAN/
rsync://ftp.yzu.edu.tw/pub/CPAN/
rsync://ftp.ubuntu-tw.org/CPAN/
rsync://mirrors.digipower.vn/CPAN/
rsync://cpan.inode.at/CPAN/
rsync://ftp.byfly.by/CPAN/
rsync://mirror.datacenter.by/CPAN/
rsync://ftp.belnet.be/cpan/
rsync://cpan.mirror.ba/CPAN/
rsync://mirrors.neterra.net/CPAN/
rsync://mirrors.netix.net/CPAN/
rsync://mirror.dkm.cz/cpan/
rsync://mirrors.nic.cz/CPAN/
rsync://cpan.mirror.vutbr.cz/cpan/
rsync://rsync.nic.funet.fi/CPAN/
rsync://ftp.ciril.fr/pub/cpan/
rsync://distrib-coffee.ipsl.jussieu.fr/pub/mirrors/cpan/
rsync://cpan.mirrors.ovh.net/CPAN/
rsync://mirror.de.leaseweb.net/CPAN/
rsync://mirror.euserv.net/cpan/
rsync://ftp-stud.hs-esslingen.de/CPAN/
rsync://ftp.gwdg.de/pub/languages/perl/CPAN/
rsync://ftp.hawo.stw.uni-erlangen.de/CPAN/
rsync://cpan.mirror.iphh.net/CPAN/
rsync://mirror.netcologne.de/cpan/
rsync://ftp.halifax.rwth-aachen.de/cpan/
rsync://ftp.ntua.gr/CPAN/
rsync://mirror.met.hu/CPAN/
rsync://ftp.heanet.ie/mirrors/ftp.perl.org/pub/CPAN/
rsync://rsync.panu.it/CPAN/
rsync://mirror.as43289.net/CPAN/
rsync://rsync.cs.uu.nl/CPAN/
rsync://mirror.nl.leaseweb.net/CPAN/
rsync://ftp.nluug.nl/CPAN/
rsync://mirror.transip.net/CPAN/
rsync://cpan.uib.no/cpan/
rsync://cpan.vianett.no/CPAN/
rsync://cpan.perl-hackers.net/CPAN/
rsync://cpan.perl.pt/cpan/
rsync://mirrors.m247.ro/CPAN/
rsync://mirrors.teentelecom.net/CPAN/
rsync://cpan.webdesk.ru/CPAN/
rsync://mirror.yandex.ru/mirrors/cpan/
rsync://mirror.sbb.rs/CPAN/
rsync://ftp.acc.umu.se/mirror/CPAN/
rsync://rsync.pirbot.com/ftp/cpan/
rsync://cpan.ip-connect.vn.ua/CPAN/
rsync://rsync.mirror.anlx.net/CPAN/
rsync://mirror.bytemark.co.uk/CPAN/
rsync://mirror.sax.uk.as61049.net/CPAN/
rsync://rsync.mirrorservice.org/cpan.perl.org/CPAN/
rsync://ftp.ticklers.org/CPAN/
rsync://mirrors.uk2.net/CPAN/
rsync://CPAN.mirror.rafal.ca/CPAN/
rsync://mirror.csclub.uwaterloo.ca/CPAN/
rsync://mirrors.namecheap.com/CPAN/
rsync://mirrors.syringanetworks.net/CPAN/
rsync://mirror.team-cymru.org/CPAN/
rsync://debian.cse.msu.edu/cpan/
rsync://mirrors-usa.go-parts.com/mirrors/cpan/
rsync://rsync.hoovism.com/CPAN/
rsync://mirror.cc.columbia.edu/cpan/
rsync://noodle.portalus.net/CPAN/
rsync://mirrors.rit.edu/cpan/
rsync://mirrors.ibiblio.org/CPAN/
rsync://cpan.pair.com/CPAN/
rsync://cpan.cs.utah.edu/CPAN/
rsync://mirror.cogentco.com/CPAN/
rsync://mirror.jmu.edu/CPAN/
rsync://mirror.us.leaseweb.net/CPAN/
rsync://cpan.mirror.digitalpacific.com.au/cpan/
rsync://mirror.internode.on.net/cpan/
rsync://uberglobalmirror.com/cpan/
rsync://cpan.lagoon.nc/cpan/
rsync://mirrors.mmgdesigns.com.ar/CPAN/ Для получения актуального списка сайтов CPAN, см. http://www.cpan.org/SITES или ftp://www.cpan.org/SITES.
Модули: Создание, использование и злоупотребление
(Следующий раздел взят непосредственно из файла модулей Тима Бэнса, доступного на вашем ближайшем сайте CPAN.)
Perl реализует класс с использованием пакета, но наличие пакета не подразумевает наличия класса. Пакет — это просто пространство имен. Класс — это пакет, предоставляющий подпрограммы, которые могут использоваться как методы. Метод — это просто подпрограмма, которая ожидает в качестве своего первого аргумента либо имя пакета (для «статических» методов), либо ссылку на что-то (для «виртуальных» методов).
Модуль — это файл, который (по соглашению) предоставляет класс с тем же именем (без .pm), плюс метод import в этом классе, который может вызываться для извлечения экспортированных символов. Этот модуль может реализовывать некоторые свои методы, загружая динамические объекты C или C++, но это должно быть полностью прозрачно для пользователя модуля. Аналогично, модуль может настроить функцию AUTOLOAD для поглощения определений подпрограмм по требованию, но и это прозрачно. Только файл .pm должен существовать. Подробности механизма AUTOLOAD см. в perlsub, perlobj и AutoLoader.
Руководство по созданию модулей
-
Существуют ли аналогичные модули в какой-либо форме?
В случае положительного ответа, пожалуйста, постарайтесь повторно использовать существующие модули целиком или путем наследования полезных функций в новый класс. Если это непрактично, попробуйте связаться с авторами модуля, чтобы обсудить расширение или улучшение функциональности существующих модулей. Прекрасным примером является множество пакетов в perl4 для обработки командной строки.
Если вы пишете модуль для расширения уже существующего набора модулей, пожалуйста, согласуйтесь с автором пакета. Это полезно, если вы следуете той же схеме именования и взаимодействия модулей, что и оригинальный автор.
-
Постарайтесь спроектировать новый модуль, чтобы его легко было расширить и повторно использовать.
Попробуйте
use warnings;(илиuse warnings qw(...);). Помните, что вы можете добавитьno warnings qw(...);к отдельным блокам кода, которым требуется меньше предупреждений.Используйте освященные ссылки. Используйте двухаргументную форму bless для освящения в имя класса, указанное в качестве первого параметра конструктора, например:
sub new { my $class = shift; return bless {}, $class; }или даже это, если вы хотите, чтобы оно использовалось как статический или виртуальный метод.
sub new { my $self = shift; my $class = ref($self) || $self; return bless {}, $class; }Передавайте массивы как ссылки, чтобы можно было добавить больше параметров позже (это также быстрее). Преобразуйте функции в методы, где это уместно. Разбейте большие методы на более мелкие и гибкие. Наследуйте методы из других модулей, если это уместно.
Избегайте проверок имени класса, таких как:
die "Invalid" unless ref $ref eq 'FOO'. Обычно вы можете удалить частьeq 'FOO'без каких-либо проблем. Позвольте объектам заботиться о себе! В целом, старайтесь избегать жёстко заданных имён классов, насколько это возможно.Избегайте
$r->Class::func()в случаях, когда использование@ISA=qw(... Class ...)и$r->func()было бы уместным.Используйте autosplit, чтобы малоиспользуемые или недавно добавленные функции не были бременем для программ, которые их не используют. Добавьте тестовые функции в модуль после __END__, используя AutoSplit или сказав:
eval join('',<main::DATA>) || die $@ unless caller();Проходит ли ваш модуль тест «пустого подкласса»? Если вы говорите
@SUBCLASS::ISA = qw(YOURCLASS);, ваши приложения должны иметь возможность использовать SUBCLASS точно так же, как YOURCLASS. Например, ваше приложение всё ещё работает, если вы измените:$obj = YOURCLASS->new();на:$obj = SUBCLASS->new();?Избегайте сохранения каких-либо данных состояния в ваших пакетах. Это затрудняет использование ваших пакетов другими пакетами. Сохраняйте данные состояния в объектах.
Всегда используйте -w.
Попробуйте
use strict;(илиuse strict qw(...);). Помните, что вы можете добавитьno strict qw(...);к отдельным блокам кода, которым требуется меньшая строгость.Всегда используйте -w.
Следуйте рекомендациям в perlstyle.
Всегда используйте -w.
-
Некоторые простые рекомендации по стилю
В руководстве perlstyle, поставляемом с Perl, много полезных рекомендаций.
Стиль кодирования является делом личных предпочтений. Многие люди развивают свой стиль на протяжении многих лет, изучая, что помогает им писать и поддерживать качественный код. Вот несколько общих рекомендаций, которые, как правило, используются опытными разработчиками:
Используйте подчеркивания для разделения слов. Как правило, $var_names_like_this легче читать, чем $VarNamesLikeThis, особенно для тех, кто не является носителем английского языка. Это также простое правило, которое последовательно работает с VAR_NAMES_LIKE_THIS.
Имена пакетов/модулей являются исключением из этого правила. Perl неформально зарезервировал имена модулей в нижнем регистре для «pragma» модулей, таких как integer и strict. Другие модули, как правило, начинаются с большой буквы и используют смешанный регистр без подчеркиваний (они должны быть короткими и переносимыми).
Возможно, вам будет полезно использовать регистр букв для указания области или характера переменной. Например:
$ALL_CAPS_HERE constants only (beware clashes with Perl vars) $Some_Caps_Here package-wide global/static $no_caps_here function scope my() or local() variablesИмена функций и методов, как правило, работают лучше в нижнем регистре. Например,
$obj->as_string().Вы можете использовать ведущую подчеркивание, чтобы указать, что переменная или функция не должны использоваться за пределами пакета, который её определил.
-
Выбор того, что экспортировать.
НЕ экспортируйте имена методов!
НЕ экспортируйте ничего по умолчанию без веской причины!
Экспорт загрязняет пространство имён пользователя модуля. Если вам необходимо экспортировать, постарайтесь использовать @EXPORT_OK вместо @EXPORT и избегайте коротких или общих имён, чтобы уменьшить риск конфликтов имён.
Как правило, всё, что не экспортировано, всё ещё доступно извне модуля с использованием синтаксиса ModuleName::item_name (или
$blessed_ref->method). По соглашению, вы можете использовать ведущую подчеркивание в именах, чтобы неформально указать, что они являются «внутренними» и не предназначены для общего доступа.(На самом деле, получить закрытые функции можно, сказав:
my $subref = sub { ... }; &$subref;. Но вызвать это напрямую как метод невозможно, так как метод должен иметь имя в таблице символов.)Как общее правило, если модуль пытается быть объектно-ориентированным, ничего не экспортируйте. Если это просто набор функций, то @EXPORT_OK всё, кроме этого, но используйте @EXPORT с осторожностью.
-
Выбор имени для модуля.
Это имя должно быть максимально описательным, точным и полным. Избегайте любых рисков неоднозначности. Всегда старайтесь использовать два или более полных слова. В целом, имя должно отражать то, что особенного делает модуль, а не то, как он это делает. Используйте вложенные имена модулей для неформальной группировки или категоризации модуля. Должна быть очень веская причина для того, чтобы модуль не имел вложенного имени. Имена модулей должны начинаться с большой буквы.
Наличие 57 модулей, все называемых Sort, не упростит жизнь никому (хотя 23, называемых Sort::Quick, немного лучше :-). Представьте себе, как кто-то пытается установить ваш модуль вместе со многими другими.
Если вы разрабатываете набор связанных модулей/классов, хорошей практикой является использование вложенных классов с общим префиксом, так как это поможет избежать конфликтов имён. Например: Xyz::Control, Xyz::View, Xyz::Model и т. д. Используйте эти модули как руководство по именованию.
Если вы добавляете новый модуль в набор, следуйте стандартам именования модулей и интерфейса к методам в этих модулях, установленным первоначальным автором.
Если вы разрабатываете модули для частного внутреннего или проекта, которые никогда не будут выпущены для публичного доступа, убедитесь, что их имена не будут конфликтовать с будущими общедоступными модулями. Вы можете сделать это, используя зарезервированную категорию Local::* или используя имя категории, включающее символ подчеркивания, например, Foo_Corp::*.
Для обеспечения переносимости каждый компонент имени модуля должен быть ограничен 11 символами. Если он может использоваться в MS-DOS, то постарайтесь убедиться, что каждый из них уникален в первых 8 символах. Вложенные модули облегчают это.
Для получения дополнительной информации по именованию модулей обратитесь к:
http://pause.perl.org/pause/query?ACTION=pause_namingmodulesили отправьте сообщение на список рассылки <module-authors@perl.org>.
-
Вы всё сделали правильно?
Как вы знаете, что приняли правильные решения? Вы выбрали дизайн интерфейса, который позже вызовет проблемы? Вы выбрали наиболее подходящее имя? У вас есть какие-либо вопросы?
Лучший способ узнать наверняка и получить много полезных советов – спросить у знающего человека. Список рассылки <module-authors@perl.org> пригодится для этого; к нему также можно получить доступ через новостной интерфейс perl.module-authors at nntp.perl.org.
Всё, что вам нужно сделать, – это кратко описать модуль, его назначение и интерфейсы. Несколько строк о каждом из основных методов, вероятно, достаточно. (Если вы отправите весь модуль, то он, возможно, будет проигнорирован занятыми людьми – как правило, именно теми людьми, которым вы хотите его показать!)
Не беспокойтесь о публикации, если вы не можете сказать, когда модуль будет готов – просто укажите об этом в сообщении. Возможно, стоит пригласить других помочь вам; они могут справиться с этим за вас!
-
README и другие дополнительные файлы.
Известно, что разработчики программного обеспечения обычно полностью документируют разработанное ими программное обеспечение. Однако, если миру срочно необходимо ваше программное обеспечение, и нет достаточно времени для написания полной документации, пожалуйста, хотя бы предоставьте файл README, содержащий:
-
Описание модуля/пакета/расширения и т. д.
-
Уведомление об авторских правах – см. ниже.
-
Предварительные требования – что ещё вам может понадобиться.
-
Как его собрать – возможные изменения в Makefile.PL и т. д.
-
Как его установить.
-
Последние изменения в этом выпуске, особенно несовместимости
-
Изменения/улучшения, которые вы планируете внести в будущем.
Если файл README кажется слишком большим, вы можете разбить некоторые разделы на отдельные файлы: INSTALL, Copying, ToDo и т. д.
-
Добавление уведомления об авторских правах.
Как вы выберете лицензию для своей работы – это личное решение. Общий механизм – заявить о ваших авторских правах и затем объявить, как другие могут копировать/использовать/изменять вашу работу.
Например, Perl поставляется с двумя типами лицензий: GNU GPL и Artistic Licence (см. файлы README, Copying и Artistic, или perlgpl и perlartistic). У Ларри есть веские причины, почему он НЕ использует только GNU GPL.
Моя личная рекомендация, из уважения к Ларри, Perl и всему сообществу Perl в целом, – это простое заявление, например:
Copyright (c) 1995 Your Name. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.Это заявление должно, по крайней мере, появиться в файле README. Вы также можете включить его в файл Copying и в файлы исходного кода. Помните, что нужно включить и другие слова в дополнение к авторским правам.
-
Назначение версии/номер проблемы/выпуска модулю.
Для полной совместимости с модулями Exporter и MakeMaker вы должны сохранить номер версии модуля в переменной, не являющейся моим пакетом, под названием $VERSION. Это должно быть положительное число с плавающей запятой с, по крайней мере, двумя цифрами после десятичной точки (т. е., сотыми, например,
$VERSION = "0.01"). Не используйте версию в формате «1.3.2». Подробности см. в Exporter.Может быть полезно добавить функцию или метод для получения числа. Используйте это число в объявлениях и именах файлов архива при выпуске модуля (ModuleName-1.02.tar.Z). См. perldoc ExtUtils::MakeMaker.pm для получения дополнительной информации.
-
Как выпустить и распространить модуль.
Если это возможно, зарегистрируйте модуль в CPAN. Следуйте инструкциям и ссылкам на:
http://www.cpan.org/modules/04pause.htmlи загрузите его на:
http://pause.perl.org/и сообщите <modules@perl.org>. Это позволит любому установить ваш модуль с помощью инструмента
cpan, поставляемого с Perl.Используя веб-интерфейс, вы можете попросить сервер загрузки зеркалировать ваши модули со вашего FTP- или веб-сайта в свой каталог в CPAN!
-
Обращайте внимание при изменении выпущенного модуля.
Всегда старайтесь сохранять совместимость с предыдущими выпущенными версиями. В противном случае постарайтесь добавить механизм для возврата к старому поведению, если люди полагаются на него. Документируйте несовместимые изменения.
-
Рекомендации по преобразованию скриптов библиотеки Perl 4 в модули
-
Нет необходимости в преобразовании чего-либо.
Если оно не сломано, не надо его чинить! Скрипты Perl 4 библиотеки должны продолжать работать без проблем. Возможно, потребуется внести некоторые незначительные изменения (например, экранирование не-массивов @ в строках с двойными кавычками), но нет необходимости преобразовывать файл .pl в модуль только для этого.
-
Рассмотрите последствия.
Все приложения Perl, которые используют этот скрипт, необходимо будет изменить (незначительно), если скрипт преобразуется в модуль. Стоит ли это делать, если вы не планируете внести другие изменения одновременно?
-
Максимально используйте эту возможность.
Если вы собираетесь преобразовать скрипт в модуль, вы можете использовать эту возможность для перепроектирования интерфейса. Руководящие принципы создания модулей выше включают в себя многие вопросы, которые следует учитывать.
-
Утилита pl2pm поможет вам начать работу.
Эта утилита будет читать файлы *.pl (переданные в качестве параметров) и записывать соответствующие файлы *.pm. Утилита pl2pm выполняет следующие действия:
-
Добавляет стандартные строки пролога модуля
-
Преобразует спецификаторы пакетов из ' в ::
-
Преобразует die(...) в croak(...)
-
Несколько других незначительных изменений
Будучи механическим процессом, pl2pm не является абсолютно надёжным. Преобразованный код необходимо тщательно проверить, особенно все инструкции о пакетах. Не удаляйте исходный файл .pl, пока новый .pm не будет работать!
-
Руководящие принципы повторного использования кода приложения
-
Полностью работоспособные приложения редко подходят для Perl Module Library.
-
Многие приложения содержат некоторые фрагменты кода Perl, которые можно повторно использовать.
Помогите спасти мир! Поделитесь своим кодом в форме, которая упростит его повторное использование.
-
Выделите повторно используемый код в один или несколько отдельных файлов модулей.
-
Используйте эту возможность, чтобы пересмотреть и перепроектировать интерфейсы.
-
В некоторых случаях «приложение» можно уменьшить до небольшой
фрагменты кода, построенного на основе повторно используемых модулей. В этих случаях приложение можно вызывать так:
% perl -e 'use Module::Name; method(@ARGV)' ... or % perl -mModule::Name ... (in perl5.002 or higher)
ПРИМЕЧАНИЕ
Perl не навязывает частные и публичные части своих модулей, как вы могли быть привыкшими в других языках, таких как C++, Ada или Modula-17. Perl не имеет пристрастия к навязываемой приватности. Он предпочел бы, чтобы вы держались подальше от его гостиной, потому что вас не пригласили, а не потому, что у него есть дробовик.
Модуль и его пользователь имеют контракт, часть которого основана на обычном праве, а часть — на «письменном». Часть контракта по обычному праву заключается в том, что модуль не загрязняет ни один пространство имён, к которому он не был приглашен. Письменный контракт для модуля (также известный как документация) может содержать другие положения. Но тогда вы знаете, когда вы use RedefineTheWorld что вы переопределяете мир и готовы принять последствия.
© 1993–2020 Larry Wall and others
Licensed under the GNU General Public License version 1 or later, or the Artistic License.
The Perl logo is a trademark of the Perl Foundation.
https://perldoc.perl.org/5.30.3/perlmodlib