perlmodlib
СОДЕРЖАНИЕ
ИМЯ
perlmodlib - создание новых модулей Perl и поиск существующих
БИБЛИОТЕКА МОДУЛЕЙ PERL
Во многих дистрибутивах Perl включены модули. Они описаны ниже, и все они заканчиваются на .pm. Вы можете обнаружить скомпилированные файлы библиотек (обычно заканчивающиеся на .so) или небольшие части модулей, которые подключаются автоматически (заканчиваются на .al); они были автоматически сгенерированы процессом установки. Вы также можете обнаружить файлы в каталоге библиотеки, которые заканчиваются на .pl или .ph. Это старые библиотеки, чтобы старые программы, которые их используют, по-прежнему работали. Файлы .pl в конечном итоге будут преобразованы в стандартные модули, а файлы .ph, созданные h2ph, вероятно, превратятся в модули расширения, созданные h2xs. (Некоторые значения .ph могут быть уже доступны через модули POSIX, Errno или Fcntl.) Файл pl2pm в дистрибутиве может помочь в преобразовании, но это просто механический процесс и поэтому далёк от безупречности.
Прагматические модули
Они работают примерно как директивы компилятора (прагматические модули) в том смысле, что они, как правило, влияют на компиляцию вашей программы и, следовательно, обычно хорошо работают только при использовании внутри use, или no. Большинство из них имеют лексическое объявление, поэтому внутренний БЛОК может отменить их, сказав:
no integer;
no strict 'refs';
no warnings; что действует до конца этого БЛОКА.
Некоторые прагмы имеют лексическое объявление — как правило, те, которые влияют на $^H переменную подсказок. Другие влияют на текущий пакет, например, use vars и use subs, которые позволяют предварительно объявлять переменные или подпрограммы в конкретном файле, а не только в блоке. Такие объявления действуют для всего файла, для которого они были объявлены. Вы не можете отменить их с помощью no vars или no subs.
Ниже перечислены определенные прагмы (и их собственная документация).
- arybase
-
Установить базу индексации через $[
- attributes
-
Получить/установить атрибуты подпрограммы или переменной
- autodie
-
Заменить функции на функции, которые завершаются успешно или сообщают об ошибке с лексическим объявлением
- autodie::exception
-
Исключения из функций autodie.
- autodie::exception::system
-
Исключения из autodying system().
- autodie::hints
-
Предоставить подсказки о пользовательских подпрограммах для autodie
- autodie::skip
-
Пропустить пакет при возникновении исключений autodie
- autouse
-
Отложить загрузку модулей до использования функции
- base
-
Установить отношение ISA с базовыми классами во время компиляции
- bigint
-
Поддержка прозрачных целых чисел большой точности для Perl
- bignum
-
Поддержка прозрачных чисел большой точности для Perl
- bigrat
-
Поддержка прозрачных чисел и рациональных чисел большой точности для Perl
- blib
-
Использовать неинсталлированную версию пакета MakeMaker
- bytes
-
Отобразить отдельные байты символов
- charnames
-
Доступ к именам и именованным последовательностям символов Unicode; также определяет имена символов
- constant
-
Объявить константы
- deprecate
-
Прагма Perl для устаревания ядра версии модуля
- diagnostics
-
Выводить подробные диагностические сообщения об ошибках
- encoding
-
Позволяет писать скрипт не в ASCII и не в UTF-8
- encoding::warnings
-
Выдавать предупреждение об явных преобразованиях кодировок
- experimental
-
Экспериментальные возможности стали проще
- feature
-
Включить новые функции
- fields
-
Поля класса во время компиляции
- filetest
-
Управлять операторами проверки прав доступа к файлам
- if
-
useмодуль 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::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::Debug
-
Проход по дереву синтаксиса Perl, вывод отладочной информации об операциях
- B::Deparse
-
Задний конец Perl-компилятора для генерации кода Perl
- B::Op_private
-
OP op_private flag definitions - 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::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/Portability
- 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 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 в файлах Makefile и т.д.
- ExtUtils::Command::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
-
Независимые от платформы методы MM
- 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
-
Доступ к библиотеке gdbm из Perl5.
- 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::Codes
-
Распределение модулей для работы с кодами локалей
- Locale::Codes::Changes
-
Подробности изменений в Locale::Codes
- Locale::Codes::Country
-
Модуль для работы с наборами кодов стран
- Locale::Codes::Currency
-
Модуль для работы с наборами кодов валют
- Locale::Codes::LangExt
-
Модуль для работы с наборами кодов langext
- Locale::Codes::LangFam
-
Модуль для работы с наборами кодов langfam
- Locale::Codes::LangVar
-
Модуль для работы с наборами кодов langvar
- Locale::Codes::Language
-
Модуль для работы с наборами кодов языков
- Locale::Codes::Script
-
Модуль для работы с наборами кодов шрифтов
- Locale::Codes::Types
-
Типы поддерживаемых наборов данных
- Locale::Country
-
Модуль для работы с наборами кодов стран
- Locale::Currency
-
Модуль для работы с наборами кодов валют
- Locale::Language
-
Модуль для работы с наборами кодов языков
- 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
-
Статья о локализации программного обеспечения
- Locale::Script
-
Модуль для работы с наборами кодов шрифтов
- MIME::Base64
-
Кодирование и декодирование строк base64
- MIME::QuotedPrint
-
Кодирование и декодирование строк quoted-printable
- Math::BigFloat
-
Пакет для работы с плавающей точкой произвольного размера
- Math::BigInt
-
Пакет для работы с целыми числами/числами с плавающей точкой произвольного размера
- Math::BigInt::Calc
-
Чисто-Perl модуль для поддержки Math::BigInt
- Math::BigInt::CalcEmu
-
Эмулировать низкоуровневую математику с кодом 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
-
IO с отображением памяти
- PerlIO::scalar
-
IO в памяти, скалярное IO
- 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-цветами
- 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 с управляющими последовательностями терминала
- 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
-
Интерфейс для парсинга Pod с помощью pull-парсера
- 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::Termcap
-
Преобразование данных POD в ASCII-текст со спецсимволами форматирования
- Pod::Usage
-
Вывод сообщения об использовании из встроенной документации pod
- SDBM_File
-
Связанный доступ к файлам sdbm
- Safe
-
Компиляция и выполнение кода в ограниченных секциях
- Scalar::Util
-
Подборка общих вспомогательных процедур для скаляров
- Search::Dict
-
Поиск ключа в словаре
- SelectSaver
-
Сохранение и восстановление выбранного файла
- SelfLoader
-
Загрузка функций только по требованию
- Storable
-
Сохранение данных структур Perl
- Sub::Util
-
Подборка вспомогательных процедур для подпрограмм и ссылок на CODE
- 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
-
Тип события Note
- Test2::Event::Ok
-
Тип события Ok
- Test2::Event::Pass
-
Событие для простого успешного утверждения
- Test2::Event::Plan
-
Событие плана
- Test2::Event::Skip
-
Тип события 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::Info
-
Аспект для информации, которая может быть интересна разработчику.
- 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
-
Эффективное вычисление времени от локального и GMT времени
- Time::Piece
-
Объектно-ориентированные объекты времени
- Time::Seconds
-
Простой API для преобразования секунд в другие значения даты
- Time::gmtime
-
Интерфейс по имени к встроенной функции Perl gmtime()
- Time::localtime
-
Интерфейс по имени к встроенной функции Perl localtime()
- 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
-
Интерфейс по имени к встроенным функциям 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
-
Hook stack for managing scopes via %^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 (описано ниже) или с помощью поисковых систем в Интернете, таких как Alta Vista или Google.
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(...);к отдельным блокам кода, требующим меньше предупреждений.Используйте благословенные ссылки. Используйте двухаргументную форму благословения, чтобы благословить в класс, имя которого указано в качестве первого параметра конструктора, например:
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().Используйте авторазбиение, чтобы малоиспользуемые или недавно добавленные функции не были бременем для программ, которые их не используют. Добавьте тестовые функции в модуль после __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 неформально зарезервированы имена модулей с маленькими буквами для модулей «прагмы», таких как 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 и в ваши исходные файлы. Помните, что необходимо включить и другие слова, помимо Copyright.
-
Присвойте модулю номер версии/выпуска.
Для полной совместимости с модулями 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.
-
Многие приложения содержат некоторый код 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.28.3/perlmodlib