use

Синтаксис

use Module LIST
use Module
use Module VERSION LIST
use VERSION

Описание

Импортирует данные из указанного модуля, обычно за счет введения в ваш пакет синонимов переменных и подпрограмм модуля. В целом функция эквивалентна вызову
BEGIN { require Module; import Module LIST; }
с тем лишь отличием, что Module должен представлять собой одно простое слово.
Если первый аргумент функции представляет собой число, оно интерпретируется не как имя файла, а как номер версии. Если версия интерпретатора Perl меньше, чем VERSION, выводится сообщение об ошибке и Perl завершает работу. Этот прием часто используется для проверки версии Perl перед включением (с помощью той же функции use) библиотечных модулей, которые в старых версиях Perl несовместимы с текущими.
Блок BEGIN принуждает Perl выполнять функцию require и метод import на этапе компиляции. При этом require обеспечивает загрузку модуля в память, если его до сих пор там не было, import представляет собой обычный статический вызов метода в пакете «Module», позволяющий передать в пользовательский метод требование импорта списка объектов в текущий пакет.
В самом модуле реализация метода импорта может осуществляться произвольным образом, хотя в большинстве случаев разработчики просто наследуют метод импорта у класса Exporter, определенном в одноименном модуле. Если метод импортирования обнаружить не удается, эта ошибка просто замалчивается. Впрочем, в будущем она может быть переведена в категорию фатальных.
Если вы не планируете изменять пространство имен вашего пакета, вы должны явно передать в качестве аргумента пустой список:
use Module ();
Это полностью эквивалентно
BEGIN { require Module; }
Если между именем модуля и списком импорта присутствует аргумент VERSION, то функция use вызывает метод VERSION в классе Module, аргументом которого является номер текущей версии. Метод VERSION, используемый по умолчанию, наследуется из класса Universal и завершает работу программы, если переданный в качестве аргумента номер версии больше, чем значение переменной $Module::VERSION. Аналогичным образом посредством use реализуется и несколько директив компилятора. В настоящее время вы можете использовать:
use integer;
use diagnostics;
use sigtrap qw(SEGV BUS);
use strict qw(subs vars refs) ;
use subs qw(afunc blurfl);
Отличие этих псевдомодулей от обычных состоит в том, что они предназначены для импорта указанных семантических конструкций в отдельные блоки с сохранением их в силе в пределах текущей области видимости.
Предусмотрена также команда «no», которая удаляет импортированные с помощью use значения, то есть осуществляет вызов unimport Module LIST.
no integer;
no strict 'refs';
В случае если методы «разымпортирования» найти не удается, генерируется фатальная ошибка.



2011-04-26 00:53:16 lykich

Thanks




Оставить комментарий:
Ваше Имя:
Email:
Антибот: *  
Ваш комментарий: