Модули Perl: структура, использование и документация.
Perl module
Perl модули: компоненты для языка Perl, определяющие пространства имен и классы. Узнайте о структуре, пакетах и использовании модулей в Perl программировании.
Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Введение
Модуль Perl — это дискретный компонент программного обеспечения для языка программирования Perl. Технически, это определённый набор соглашений для использования механизма пакетов Perl, который получил всеобщее распространение. Модуль определяет свой исходный код в пакете (по аналогии с Java-пакетом) — механизме Perl для определения пространств имён, например, CGI, Net::FTP или XML::Parser; структура файлов отражает структуру пространства имён (например, исходный код Net::FTP находится в каталоге Net/FTP.pm). Кроме того, модуль является эквивалентом класса в Perl при использовании объектно-ориентированного программирования. Коллекция модулей, сопровождаемая документацией, скриптами сборки и, как правило, набором тестов, составляет дистрибутив. Сообщество Perl располагает обширной библиотекой дистрибутивов, доступных для поиска и загрузки через CPAN. Perl — это язык, допускающий различные стили программирования. Разработчик с одинаковой вероятностью может найти модуль, написанный в процедурном стиле (например, Test::Simple), как и объектно-ориентированный (например, XML::Parser); оба подхода считаются равноправными, в зависимости от задач модуля. Модули также могут использоваться для добавления методов (DBIx::Class) или быть прагмой (strict.pm), которая начинает действовать сразу после загрузки. Модули могут даже использоваться для изменения синтаксиса языка. Эффект модулей Perl обычно ограничен областью видимости, в которой они были загружены. В модулях Perl обычно встроена документация в формате Perl's Plain Old Documentation (POD). POD не накладывает жёстких ограничений на автора и достаточно гибок для написания статей, веб-страниц и даже целых книг, таких как "Programming Perl". В отличие от javadoc, который специализируется на документировании классов Java, документация модуля обычно следует структуре страницы руководства Unix (man page). Язык Perl определяется единственной реализацией (именуемой "perl") и расширяется (а в редких случаях — лишается функциональности) с каждым новым релизом. Поэтому важно, чтобы автор модуля знал, какие функции он использует и какая минимальная версия Perl требуется для его работы. Код на этой странице требует Perl версии 5.6.0, которая на данный момент считается устаревшей.
A Perl module is a discrete component of software for the Perl programming language. Technically, it is a particular set of conventions for using Perl's package mechanism that has become universally adopted. A module defines its source code to be in a package (much like a Java package), the Perl mechanism for defining namespaces, e. g. CGI or Net::FTP or XML::Parser; the file structure mirrors the namespace structure (e. g. the source code for Net::FTP is in Net/FTP. pm). Furthermore, a module is the Perl equivalent of the class when object oriented programming is employed. A collection of modules, with accompanying documentation, build scripts, and usually a test suite, composes a distribution. The Perl community has a sizable library of distributions available for search and download via CPAN. Perl is a language allowing many different styles of programming. A developer is as likely to find a module written in a procedural style (for example, Test::Simple) as object oriented (e. g. XML::Parser), both are considered equally valid according to what the module needs to do. Modules might also be used to mixin methods (DBIx::Class) or be a pragma (strict. pm) which has an effect immediately upon being loaded. Modules can even be used to alter the syntax of the language. The effect of Perl modules are usually limited to the current scope in which it was loaded. It is common for Perl modules to have embedded documentation in Perl's Plain Old Documentation format. POD imposes little structure on the author. It is flexible enough to be used to write articles, web pages and even entire books such as Programming Perl. Contrast with javadoc which is specialized to documenting Java classes. By convention, module documentation typically follows the structure of a Unix man page. The language of Perl is defined by the single implementation (referred to as "perl") and is added to (and in rare occasions taken away from) each new release. For this reason it is important for a module author to be aware what features they're making use of and what the minimum required version of perl is. The code on this page requires perl 5.6.0 which is considered rather old by now.
Процедуральный пример
Вот пример реализации "Hello, World" в виде процедурного модуля с настраиваемым адресатом приветствия, для придания интереса. Также включен короткий скрипт для демонстрации использования модуля.
Here is "Hello, World" implemented as a procedural module with a customizable target for the greeting, just to make things interesting. Also included is a short script to illustrate the module's use.