Шрифт:
Деструктор END выполняется последним как только возможно т.е. при завершении работы интерпрератора. Можно указать несолько блоков END при этом они будут выполняться в обратном определению порядке.
В Перл нет специального синтаксиса для классов. Но функционально полноценными классами могут быть модули. При этом подпрограммы модуля становятся методами, а с помощью массива @ISA можно реализовать механизм наследования в классах. Более подробно классы описаны отдельно.
Если вы хотоите создать модуль отдельным файлом и использовать как библиотеку подпрограмм, при этом вызывать подпрограммы библиотеки не указывая имени модуля, вам необходимо оформить модуль следующим образом:
package имя_модуля; # Такое же как и имя этого файла без расширения '.pm'
require Exporter; # Обязательная строка для экспорта имен
@ISA = qw(Exporter); # -//-
@EXPORT = qw(func1 func2) # Перечисляем имена функций. Внимание ! нет запятой!
@EXPORT_OK = qw( $переменная @массив ); # Указать публичные переменные, массивы и т.д. если необходимо
{ # Начало блока модуля
.....
sub func1
........
sub func2
........
1;
}
Данный файл с расширением ".pm" должен храниться в одной из библиотечных директорий Перл. Они перечислены в массиве @INC одно из них обычно "/usr/local/lib/perl/".
В головной программе вы указываете:
use имя_модуля;
и вам становятся доступны имена подпрограмм данного модуля.
Стандартный набор библиотек обычно поставляется с дистрибутивом Перл они разделяются на pragma библиотеки (работают как директивы компилятору) и стандартные библиотеки.
Данные библиотеки используют как:
use имя;
когда хотят включить действие и
no имя;
когда выключить.
В стандартный набор входят следующие pragma:
diagnostics – Включить режим расширенной диагностики.
integer – Использовать целочисленную арифметику.
less – Режим минимальной загрузки компилятора.
overload - Режим переопределения операторов.
sigtrap - Режим слежения за прерываниями.
strict - Режим ограниченного использования «опасных» операторов.
subs - Режим обязательного декларирования подпрограмм.
AnyDBM_File Возможность работы с разными типами баз данных.
AutoLoader Загрузка в память функций только во время вызова.
AutoSplit Разделить модуль для автозагрузки.
Benchmark Анализ скорости исполнения программы.
Carp Предупреждения об ошибках.
Config Доступ к конфигурации Перл.
Cwd Получить имя текущей рабочей директории.
DB_File Работа с базой данных формата Berkley DB.
Devel::SelfStubber Режим отладки автозагрузки.
DynaLoader Динамическая загрузка библиотек C.
English Использовать длинные имена встроенных переменных.
Env Импортировать имена переменных окружения
Exporter Обеспечивает экспорт/импорт для модулей.
ExtUtils::LibList Определяет используемые библиотеки.
ExtUtils::MakeMaker Создает файл проекта Makefile
ExtUtils::Manifest Программы для создания и проверки файла MANIFEST
ExtUtils::Mkbootstrap Применеие файла начальной загрузки для DynaLoader.
Fcntl Определения как и в С Fcntl.h
File::Basename Синтаксический разбор спецификации файла.