Как использовать модуль в другом файле - PullRequest
0 голосов
/ 31 марта 2011

Я пытаюсь использовать модуль, расположенный в той же папке (cgi-bin) в другом файле

У меня есть что-то вроде этого

package ModuleName;
sub …

а в другом файле у меня

use ModuleName;

Есть ли особый способ импортировать не библиотечные файлы или файлы в cgi-bin вместе с боковыми сценариями Perl?

Все работало, когда они были в одном файле.

Оба файла имеют соответствующие заголовки #!…

Ответы [ 2 ]

3 голосов
/ 31 марта 2011

Если модуль не экспортирует ваш саб (с Exporter и @EXPORT_OK (или @EXPORT, но это менее вежливо)), вам нужно будет ссылаться на него как ModuleName::my_sub вместо просто my_sub в код, который использует модуль.

Редактировать: Видя сообщение об ошибке в вашем комментарии к предыдущему ответу, ваша первая проблема заключается в том, что модули должны возвращать истинное значение при загрузке. Обычно это достигается добавлением строки:

1;

как последняя строка файла модуля.

1 голос
/ 31 марта 2011

Вы можете добавить:

use lib '/path/to/directory';

, которая позволит вам установить дополнительный каталог для загрузки модулей из. Убедитесь, что имя файла вашего модуля тоже заканчивается на .pm.

...