У меня есть CGI-интерфейс, который вызывает плагин Perl. Эти скрипты находятся в разных папках, и Perl должен читать XML-файл, который находится в другой папке. Для простоты приведу пример:
/a/b/cgi-bin/test.cgi # calls test.pl
/e/plugins/test.pl # reads config.xml
/e/etc/config.xml
Теперь я не знаю, как сделать плагин Perl для чтения файла конфигурации. Конечно, я не могу написать путь к сценарию, потому что завтра я могу изменить местоположение этого файла. Я попытался использовать Cwd и abs_path на test.pl, но этот метод возвращает «рабочий» путь, когда вместо этого я хочу «путь» в файле test.pl, чтобы я мог изменить его в Чтобы построить путь config.xml. Есть идеи?
РЕДАКТИРОВАТЬ: Использование realpath вместо abspath решило мою проблему, или, по крайней мере, так кажется, я проведу больше тестов.
EDIT2: Хорошо, realpath работает, но теперь у меня есть другая проблема ... Плагин Perl использует некоторые дополнительные пакеты, которые я сделал, но, конечно, сейчас пишу use MyPackage; не работает больше, потому что он смотрит на неправильную папку ... Есть ли способ изменить переменную среды? Я не знаю чего-то, что помешало бы мне изменить тысячи строк кода.
EDIT3: Ладно, это тоже как-то решено, наверное, я просто установлю свои пакеты в папку INC, чтобы мне больше не приходилось путаться с моим кодом.