Ладно, после 12 часов копания я получил это на работу.
Вот что происходит (но не почему). Всякий раз, когда я вызывал eval()
в цитируемом операторе use
или require
(как это происходит в Class :: Loader, но также и в других местах в Crypt :: framwork), он не видел пути, которые в противном случае были включены в Perl пути к классам. Поскольку большинство цитируемых объектов use / require просто предполагают, что класс будет там, на меня было брошено очень мало полезных ошибок. Я бы сбросил @INC
в файл, вне блока eval, и все было бы там.
По иронии судьбы, я использовал ту же настройку в dev против staging, и она работала в dev, но не в staging. Я также должен отметить, что FindBin (я не должен использовать его в CGI, я знаю, но Crypt использует его) колебался вверх / вниз около / dev / null в стадии подготовки, но не в разработке.
Поскольку я не могу легко сравнивать версии или глобальные конфигурации, на этом мой квест заканчивается.
Как я решил эту проблему для себя в Crypt :: RSA, было отключить все команды, связанные с FindBin, и жестко кодировать requir
e ссылки на все, что мой код когда-либо получит. Я сделал запрос в Crypt :: RSA для Crypt :: RSA :: ES :: OAEP и один в Crypt :: Random :: Генератор для Crypt :: Random :: Provider :: rand
Надеюсь, что это поможет любому в будущем, у кого есть проблема. Любой, кто может подсказать причину этого, пожалуйста, ответьте, и я добавлю его, чтобы завершить публикацию.