импорт / требование / использование для модулей Perl - PullRequest
0 голосов
/ 20 октября 2011

У меня есть 2 файла perl, которые зависят друг от друга.Первый файл, A - это файл .pl, в котором объявлено несколько пакетов / модулей.Второй файл B попытается получить доступ к одному из множества пакетов, объявленных в файле A. Как это можно сделать?

Ответы [ 2 ]

2 голосов
/ 21 октября 2011

Вы можете быть знакомы с тем, как Java или аналогичный язык находит пространство имен import com.example.AppName, выполнив поиск файла com/example/AppName.java в пути к классам.Когда вы спрашиваете Perl о use HTML::Template, он также ищет HTML/Template.pm в каталогах, перечисленных в @INC.

Разница в том, что файл Perl может иметь несколько пакетов.Когда вы говорите use HTML::Template, вы получаете все пакеты, перечисленные в HTML/Template.pm (use автоматически переводит :: в правильный разделитель каталогов для вашей системы и добавляет .pm).Если в этом файле есть пакет HTML::Template::Extension, вы можете использовать этот пакет без явного указания use.Уже загружен полный файл, и этого достаточно.

Если вы знаете точное имя файла относительно того, где вы будете запускать скрипт, самый простой способ получить его:

require 'path/to/file.pl';
0 голосов
/ 20 октября 2011

Вам необходимо объявить модуль в каждом pl-файле, который использует функцию модуля.

...