我不能%ENV
在我的 Perl 脚本上使用 var 来使用 Oracle 库。
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'}
一切正常,但是当我运行我的脚本时出现错误:
install_driver(Oracle) 失败:无法为模块 DBD::Oracle 加载“/usr/local/lib64/perl5/auto/DBD/Oracle/Oracle.so”:libclntsh.so.10.1:无法打开共享对象文件:否这样的文件或目录在 /usr/lib64/perl5/DynaLoader.pm 第 200 行。在 (eval 3) 第 3 行编译在 (eval 3) 第 3 行的 require 中失败。可能所需的共享库或 dll 没有安装在预期的位置在 persistence.perl 第 22 行
在网上搜索我发现在 Perl 上设置环境变量的正确方法是使用%ENV
哈希。
导出ORACLE_HOME
并LD_LIBRARY_PATH
通过 unix shell ( export LD_LIBRARY_PATH=...
) 它可以正常工作。有什么建议吗?