Я запускаю веб-приложение под plackup со Starman и пытаюсь динамически загружать и создавать пакеты на основе пользовательских запросов. Я использую 'require $ packageName;' для загрузки пакета, где $ packageName содержит имя пакета, имена хранятся в файле конфигурации. Затем я выполняю известный набор команд в экземпляре, поскольку все классы наследуют от базового класса и содержат набор известных методов.Загрузка динамического пакета под plackup со Starman
Это работает отлично под Apache, но по какой-то причине plackup говорит, что не может найти пакет, хотя @INC содержит путь к библиотеке, и имена пакетов являются абсолютными из последнего каталога в пути lib. То есть, именем пакета будет Base :: My :: Package.
Кто-нибудь испытывает эту проблему? Нужно ли мне обновлять какой-то другой путь в Starman? Я выполняю plackup с флагом -I, а также обновляю переменную PERL5LIB в моей среде. Я также попробовал 'use lib /...'
в главном классе приложения, но ни одна из них не работает.
Благодаря
Пример: 'Starman -e'my $ пакет = "Шаблон"; требуется пакет $; my $ t = $ package-> new; return [200, ["Content-Type" => "text/plain"], ["ok"]]; '' – daxim
Это более или менее пример того, что не работает. – MadHacker
eval "использовать $ package"; сделал трюк – MadHacker