我必須將/oracle/v10.2.0/lib添加到LD_LIBRARY_PATH才能使用DBI模塊連接到Oracle。初始化BEGIN塊中的LD_LIBRARY_PATH失敗
如果我在執行perl腳本之前在shell中設置LD_LIBRARY_PATH,那麼一切正常。
但它不會從腳本工作:
BEGIN {
$ENV{'LD_LIBRARY_PATH'}='/oracle/v10.2.0/lib';
}
use DBI;
當我執行該腳本,我得到的錯誤:
install_driver(Oracle) failed: Can't load '/usr/apps/perl5/site_perl/5.8.8/i686-linux/auto/DBD/Oracle/Oracle.so' for module DBD::Oracle: libclntsh.so.10.1: cannot open shared object file: No such file or directory at /usr/apps/perl5/5.8.8/i686-linux/DynaLoader.pm line 230. at (eval 3) line 3 Compilation failed in require at (eval 3) line 3. Perhaps a required shared library or dll isn't installed where expected at /var/tmp/getTraceDB.pl line 23
執行是正確的方式,但我認爲你會讓自己陷入無盡的循環。只有當正確的路徑不在'$ ENV {LD_LIBRARY_PATH}'中時才應該執行,因爲沒有尾部條件。 – Axeman 2012-03-16 12:23:33
與exec它工作,謝謝。唯一的問題是perl調試器(「-d」)不工作了...... exec立即執行腳本 – 2012-03-16 13:48:51
Greg Dan-歡迎。 – 2012-03-17 05:46:22