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_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 Meta
- 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
-
Кодировка ETSI 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 Format
- 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 в файлах Make и т.д.
- ExtUtils::Command::MM
-
Команды для использования MM в файлах Make
- 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
-
Специфичный для AIX подчиненный класс ExtUtils::MM_Unix
- ExtUtils::MM_Any
-
Платформенно-независимые методы MM
- ExtUtils::MM_BeOS
-
Методы для переопределения поведения UN*X в ExtUtils::MakeMaker
- ExtUtils::MM_Cygwin
-
Методы для переопределения поведения UN*X в ExtUtils::MakeMaker
- ExtUtils::MM_DOS
-
Специфичный для DOS подчиненный класс ExtUtils::MM_Unix
- 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_OS390
-
Специфичный для OS390 подчиненный класс ExtUtils::MM_Unix
- ExtUtils::MM_QNX
-
Специфичный для QNX подчиненный класс ExtUtils::MM_Unix
- ExtUtils::MM_UWIN
-
Специфичный для U/WIN подчиненный класс ExtUtils::MM_Unix
- ExtUtils::MM_Unix
-
Методы, используемые ExtUtils::MakeMaker
- ExtUtils::MM_VMS
-
Методы для переопределения поведения UN*X в ExtUtils::MakeMaker
- ExtUtils::MM_VOS
-
Специфичный для VOS подчиненный класс ExtUtils::MM_Unix
- 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::PL2Bat
-
Создание файла пакетной обработки для запуска perl-скриптов в Windows
- 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-глоббирования
- 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
-
Интерфейс по имени к встроенным функциям stat() Perl
- 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, zstd, xz, lzma, lzip, lzf или 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
-
Отключение именованных операторов при компиляции кода 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
-
Виртуальная память IO
- PerlIO::scalar
-
IO в памяти, скалярный IO
- PerlIO::via
-
Вспомогательный класс для слоёв PerlIO, реализованных на Perl
- PerlIO::via::QuotedPrint
-
Слой PerlIO для строк quoted-printable
- Pod::Checker
-
Проверка документов POD на синтаксические ошибки
- Pod::Escapes
-
Для обработки последовательностей Pod E<...>
- Pod::Functions
-
Группировка функций Perl по аналогии с perlfunc.pod
- Pod::Html
-
Модуль для преобразования файлов POD в HTML
- Pod::Man
-
Преобразование данных POD в отформатированный ввод *roff
- Pod::ParseLink
-
Парсинг кода форматирования L<> в тексте POD
- Pod::Perldoc
-
Поиск документации Perl в формате Pod.
- Pod::Perldoc::BaseTo
-
Базовый класс для форматировщиков Pod::Perldoc
- Pod::Perldoc::GetOptsOO
-
Настраиваемый парсер опций для Pod::Perldoc
- Pod::Perldoc::ToANSI
-
Вывод Pod с цветовыми escape-последовательностями ANSI
- 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::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::JustPod
-
Только Pod, весь Pod и ничего, кроме Pod
- 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-последовательностей
- 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::InterceptResult
-
Представление списка событий.
- Test2::API::InterceptResult::Event
-
Представление события для использования в
- Test2::API::InterceptResult::Hub
-
Центр, используемый InterceptResult.
- Test2::API::InterceptResult::Squasher
-
Инкапсуляция алгоритма, который
- 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
-
Таймеры высокого разрешения с функциями alarm, sleep, gettimeofday, интервальные таймеры
- Time::Local
-
Эффективное вычисление времени из локального и GMT времени
- Time::Piece
-
Объекты времени с ориентацией на объекты
- Time::Seconds
-
Простой API для преобразования секунд в другие значения дат
- Time::gmtime
-
Интерфейс по имени к встроенной функции gmtime() Perl
- Time::localtime
-
Интерфейс по имени к встроенной функции localtime() Perl
- Time::tm
-
Внутренний объект, используемый Time::gmtime и Time::localtime
- UNIVERSAL
-
Базовый класс для ВСЕХ классов (объекты ссылок)
- Unicode::Collate
-
Алгоритм сортировки Unicode
- Unicode::Collate::CJK::Big5
-
Веса CJK объединённых иероглифов
- Unicode::Collate::CJK::GB2312
-
Веса CJK объединённых иероглифов
- Unicode::Collate::CJK::JISX0208
-
Веса JIS KANJI для Unicode::Collate
- Unicode::Collate::CJK::Korean
-
Веса CJK объединённых иероглифов
- Unicode::Collate::CJK::Pinyin
-
Веса CJK объединённых иероглифов
- Unicode::Collate::CJK::Stroke
-
Веса CJK объединённых иероглифов
- Unicode::Collate::CJK::Zhuyin
-
Веса CJK объединённых иероглифов
- Unicode::Collate::Locale
-
Языковая настройка для DUCET через Unicode::Collate
- Unicode::Normalize
-
Формы нормализации Unicode
- Unicode::UCD
-
База данных символов Unicode
- User::grent
-
Интерфейс по имени к встроенным функциям getgr*() Perl
- User::pwent
-
Интерфейс по имени к встроенным функциям getpw*() Perl
- VMS::DCLsym
-
Расширение Perl для управления символами DCL
- VMS::Filespec
-
Преобразование между синтаксисом файлов VMS и Unix
- VMS::Stdio
-
Стандартные функции ввода-вывода через расширения VMS
- Win32
-
Интерфейсы к некоторым функциям Win32 API
- Win32API::File
-
Прямой доступ к системным API-вызовам Win32 для файлов/каталогов.
- Win32CORE
-
Заглушки для функций Win32 CORE
- XS::APItest
-
Тест API языка Perl C
- XS::Typemap
-
Модуль для тестирования XS typemap, распространяемых с 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, но она не находит ваши модули, вам придётся исправить manpath. Подробности см. в 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 можно найти по адресу https://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 посетите https://www.cpan.org/SITES или ftp://www.cpan.org/SITES.
Модули: Создание, использование и злоупотребление
(Следующий раздел взят непосредственно из файла модулей Тима Банса, доступного на ближайшем сайте CPAN.)
Perl реализует класс с помощью пакета, но наличие пакета не подразумевает наличие класса. Пакет — это просто пространство имен. Класс — это пакет, который предоставляет подпрограммы, которые могут использоваться как методы. Метод — это просто подпрограмма, которая ожидает в качестве первого аргумента либо имя пакета (для "статических" методов), либо ссылку на что-либо (для "виртуальных" методов).
Модуль — это файл, который (по соглашению) предоставляет класс с тем же именем (без .pm), плюс метод импорта в этом классе, который можно вызвать для получения экспортированных символов. Этот модуль может реализовать некоторые из своих методов, загрузив динамические объекты C или C++, но это должно быть полностью прозрачно для пользователя модуля. Аналогично, модуль может настроить функцию AUTOLOAD для поглощения определений подпрограмм по запросу, но и это прозрачно. Требуется только существование файла .pm. Смотрите perlsub, perlobj и AutoLoader для получения подробной информации о механизме AUTOLOAD.
Рекомендации по созданию модулей
-
Существуют ли аналогичные модули в какой-либо форме?
Если да, то попробуйте повторно использовать существующие модули целиком или путем наследования полезных функций в новый класс. Если это непрактично, попробуйте связаться с авторами модуля, чтобы обсудить расширение или улучшение функциональности существующих модулей. Прекрасным примером являются многочисленные пакеты в 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 символах. Вложенные модули облегчают это.
Для получения дополнительной информации об именовании модулей, пожалуйста, обратитесь к:
https://pause.perl.org/pause/query?ACTION=pause_namingmodulesили отправьте письмо на адрес электронной почты <module-authors@perl.org>.
-
Вы всё сделали правильно?
Как вы можете быть уверены, что приняли правильные решения? Вы выбрали дизайн интерфейса, который может вызвать проблемы в дальнейшем? Вы выбрали наиболее подходящее имя? У вас есть какие-либо вопросы?
Лучший способ узнать наверняка и получить множество полезных советов — обратиться за помощью к знающему человеку. Список рассылки <module-authors@perl.org> полезен для этой цели; он также доступен через интерфейс новостей как perl.module-authors на nntp.perl.org.
Всё, что вам нужно сделать, — это опубликовать краткое резюме модуля, его назначение и интерфейсы. Несколько строк о каждом из основных методов, вероятно, достаточно. (Если вы опубликуете весь модуль, то он, возможно, будет проигнорирован занятыми людьми — как раз теми людьми, которые вам нужны для его прочтения!)
Не беспокойтесь о публикации, если вы не можете сказать, когда модуль будет готов — просто укажите это в сообщении. Возможно, стоит предложить другим помочь вам; они могут завершить его за вас!
-
Файлы README и другие дополнительные файлы.
Известно, что разработчики программного обеспечения обычно полностью документируют написанное ими программное обеспечение. Однако, если мир срочно нуждается в вашем программном обеспечении и нет достаточно времени для написания полной документации, предоставьте, по крайней мере, файл README, содержащий:
-
Описание модуля/пакета/расширения и т. д.
-
Заявление о праве на использование авторских прав — см. ниже.
-
Требования — что еще вам может потребоваться.
-
Как его скомпилировать — возможные изменения в Makefile.PL и т. д.
-
Как его установить.
-
Последние изменения в этом выпуске, особенно несовместимости
-
Планируемые изменения/улучшения в будущем.
Если файл README кажется слишком большим, вы можете разделить некоторые разделы на отдельные файлы: INSTALL, Copying, ToDo и т. д.
-
Добавление авторского права.
Как вы выберете лицензию для своего проекта, — это личное решение. Общий механизм заключается в утверждении авторских прав и затем в объявлении, как другие могут копировать/использовать/изменять ваш код.
Например, Perl поставляется с двумя типами лицензий: GNU GPL и Artistic License (см. файлы 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. Следуйте инструкциям и ссылкам на:
https://www.cpan.org/modules/04pause.htmlи загрузите на:
https://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–2021 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.34.0/perlmodlib