Полная Энциклопедия находиться здесь: BiTStyle.narod.RU - Энциклопедия компьютерного железа

Веб мастерам | Радио телефоны | Аудио: mp3, cd, md плееры | Цифровые фото камеры | Диктофоны

Шаг 8 - Модули.

Так же как и в других языках программирования, в перле можно работать с модулями. Модулем считается совокупность подпрограмм заключенных в один файл. Хотя в перле модули можно записать в один файл, это позволяет структурировать вашу программу. Так же это удобно когда программа становится очень большая, и её чтение становится затруднительным. Когда у вас есть подпрограммы, которые часто используются в разных программах, тогда можно использовать модуль как отдельный файл и экспортировать подпрограммы из него.
Пример:
package main;
{
print "Hello!!!!!!!!";
}
Давайте по подробнее рассмотрим этот пример. Здесь 'package' - идентификатор начала модуля, а 'main' - имя этого модуля, причем это имя зарезервировано и используется, как и название главного модуля, то есть если вы запустите скрипт, который состоит из одних модулей, то его выполнение начнётся именно с модуля main.
Пример:
package mod1;
{
@array = ('hello','bay','hay');
sub proc1
{
print "@array \n";
}
}
package main;
{
mod1::proc1;
print "@mod1::array \n";
}
Результат:
hello bay hay
hello bay hay
Приведенный выше пример работает, если вы включили его в один файл. Так же есть ещё одно неудобство (по крайней мере, я не додумался, как это решить), модуль main надо описывать в самом конце файла, так как надо вперед описать другие модули. Вернемся к нашему примеру. Обратите внимание, как надо ссылаться на переменные и процедуры в другом модуле, здесь всё пишется как обычно, но к имени переменной в начало добавляется имя_модуля+'::'.
Модуль можно так же определить и внутри другого модуля, всё делается точно также, только обращение к его содержимому выглядит так:
имя_модуля::имя_подмодуля::переменные_или_продрограмма
Пожалуй, наиболее полезным является создание библиотек - файлов с заключенными в них модулями. Имеются так же стандартные библиотеки, в unix они содержатся в каталоге /usr/lib/perl/, и имеют расширение 'pm'. Вы можете записать туда свою библиотеку и использовать её. Вернемся к созданию библиотек. Создайте файл с расширением pm и поместите его в указанный выше каталог.
#--------------------------------------------------
# Главный файл можете поместить его куда хотите.
#--------------------------------------------------
use mod1; # Подключение библиотеки mod1
mdo1::proc1; # Использование подпрограммы из модуля mod1
proc2; # Почему то подпрограммы можно писать без ссылки на модуль
print "$mdo1::var1"; # Печать значения переменной и модуля
#----------END_FILE--------------------------------
#--------------------------------------------------
# Собственно сама библиотека, с именем файла
# mod1.pm, имя файла должно соответствовать
# названию модуля.
#--------------------------------------------------
package mdo1;
require Exporter; # Нужна для экспорта перемененных и подпрограм
@ISA = qw(Exporter); #
@EXPORT = qw(proc1 proc2); # Экспорт процедур
@EXPORT_OK = qw( $var1 ); # Экспорт переменных
$var1 = 10;
$var2 = 10;
sub proc1
{
print "Hello!!!!!!!!!!";
}
sub proc2
{
print "Привет!!!!!!!!";
}
#------------END_FILE------------------------------
В этом примере модуль не ограничивается блоком, так как начало файла является началом модуля, а конец - концом.
-> Квесты -> Софт -> Симуляторы -> Для детей -> Аркады -> Экшн -> Ролевые игры (RPG) -> Стратегии

Hosted by uCoz