Функция require может вызываться с разными типами аргументов.
|
1 2 3 |
require VERSION require EXPR require |
|
1 |
require 'pack.pl'; |
Если аргумент — это простая строка, require считает, что ей передано имя файла. Require попытается открыть файл, загрузить и выполнить содержащийся в нем код Perl. Если указанный файл уже был загружен, функция создаст исключительную ситуацию и предотвратит возникновение ошибки.
Подключаемый с помощью require файл должен иметь в конце символ «1;».
|
1 |
require 5.004; |
Если аргумент, переданный require — это номер версии, require потребует, чтобы номер версии perl для запуска кода был не ниже указанного.
|
1 |
require Pack; |
Если в качестве аргумента require передано голое имя пакета, функция будет предполагать, что у искомого файла должно быть расширение .pm и обрабатывать разделители пакетов «::» как разделители каталогов.
Свою работу require выполняет на этапе исполнения программы. В отличие от use, которая активна на этапе компиляции.
Require не выполняет импорта подпрограмм из пакетов! Если вы попытаетесь выполнить подпрограмму из пакета, подключенного функцией require, вас ожидает неудача и ошибка:
|
1 2 3 |
%perl require.pl Undefined subroutine &main::print_text called at require.pl line 4. |