Я не могу использовать %ENV
var на моем Perl script для использования Oracle libs.
BEGIN {
$ORACLE_HOME = "/usr/lib/oracle/10.2.0.3/client64";
$LD_LIBRARY_PATH = "$ORACLE_HOME/lib";
$ORACLE_SID="prod";
$ENV{ORACLE_SID}=$ORACLE_SID;
$ENV{ORACLE_HOME}= $ORACLE_HOME;
$ENV{LD_LIBRARY_PATH}= $LD_LIBRARY_PATH;
};
Если я печатаю $ENV{'ORACLE_HOME'}
и $ENV{'LD_LIBRARY_PATH'}
, все выглядит нормально, но когда я запускаю свой script, у меня есть ошибка:
install_driver (Oracle) не удалось: невозможно загрузить '/usr/local/lib64/perl5/auto/DBD/Oracle/Oracle.so' для модуля DBD:: Oracle: libclntsh.so.10.1: не удается открыть общий объект file: Нет файла или каталога на /usr/lib 64/perl5/DynaLoader.pm строке 200. на (eval 3) линии 3 Не удалось выполнить компиляцию в строке (eval 3) 3. Возможно, требуемая общая библиотека или dll не установлены там, где это ожидалось на persistence.perl строка 22
Поиск в Интернете Я видел, что правильный способ установки env vars на Perl - использовать хеш %ENV
.
Экспорт ORACLE_HOME
и LD_LIBRARY_PATH
через оболочку unix (export LD_LIBRARY_PATH=...
) работает корректно. Любые советы?