$variable = 'глобальная'; # переменная из пакета main
my $variable = 'лексическая'; # переменная из текущего блока
print "$main::variable $variable";
# будет напечатано: 'глобальная лексическая'
В Perl допускается использование пакетов, которые имеют составные имена следующего вида:
use lib("$path/lib"); # добавить путь к списку поиска
# загрузить внешнюю программу по имени файла
require 'Package/Subpackage/Program.pm';
Если в команде require указано полное имя пакета в виде "голого слова" (bareword), а не в виде строки или переменной, то имя загружаемого файла формируется по следующему правилу. Разделитель пакетов '::' в имени пакета заменяется на разделитель каталогов в используемой операционной системе, а к имени файла добавляется суффикс
# загрузить внешнюю программу по имени пакета
require Package::Subpackage::Program;
# вызвать подпрограмму из загруженного пакета
print Package::Subpackage::Program::subroutine(), "\n";
Теперь рассмотрим другой способ обращения к внешним программам - подключение их на этапе компиляции, что часто дает дополнительные преимущества.
Хотя есть немало случаев, когда нужно загружать внешние программы во время выполнения программы, гораздо чаще библиотеки модулей подключаются во время компиляции. Это делается с помощью команды use. Преимущество использования use по сравнению с require заключается в том, что все возможные ошибки выявляются до выполнения программы на этапе компиляции. Кроме того, команда use выполняет импорт имен, определенных в подключаемом модуле, после чего их можно удобно употреблять без имени пакета.
use Package::Subpackage::Module; # подключить модуль
С помощью команды
Команды
use 5.005; # использовать версию Perl не ниже указанной
require 5.008007; # использовать Perl 5.8.7 и выше
Если не выполняется требование, заданное в
Модуль - это специальным образом оформленная библиотека подпрограмм, предназначенных для многократного использования. Модули появились в Perl, начиная с версии 5, и с тех пор подавляющее большинство универсальных Perl-программ оформляются в виде модулей. В отличие от обычных библиотек, модули имеют внешний интерфейс - ограниченный набор переменных и функций, предназначенных для использования другими программами. Доступ к внешнему интерфейсу модуля в вызывающей программе организуется с помощью механизма импортирования имен, реализованному в стандартном модуле Exporter. Приведем пример оформления типичного модуля (сохраненного в файле Module.pm):
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии