Функция use
:
use ModuleName;
эквивалентен следующему коду с использованием функции require
:
BEGIN {
require ModuleName;
ModuleName->import;
}
Блок BEGIN
запускает этот код, как только анализатор его видит. require
загружает модуль или die
с. И тогда вызывается функция import
модуля. Функция import
может делать все что угодно, но обычно она загружает функции в пространство имен, use
d (часто с модулем Exporter
).
Важно отметить, что импорт не будет вызываться в этом случае:
use ModuleName ();
В этом случае это эквивалентно
BEGIN {
require ModuleName;
}