You will have to set those values before your modules load. So you should stick them in the BEGIN and that should work
http://www.compuspec.net/reference/language/perl/BEGIN_and_END.shtml cheers John Scoles On Fri, May 28, 2010 at 3:45 AM, newbie01 perl <newbie01.p...@gmail.com>wrote: > Hi all, > > Can someone advise how to set LD_LIBRARY_PATH from within the Perl scripts? > > If I set LD_LIBRARY_PATH from the command line, all is okay > > [oracle ~]$ perl -e 'use DBD::Oracle; print $DBD::Oracle::VERSION,"\n";' > Can't load > > '/oracle/product/db/11.1/perl/lib/site_perl/5.8.3/x86_64-linux-thread-multi/auto/DBD/Oracle/Oracle.so' > for module DBD::Oracle: libclntsh.so.11.1: cannot open shared object file: > No such file or directory at > /usr/lib64/perl5/5.8.5/x86_64-linux-thread-multi/DynaLoader.pm line 230. > at -e line 1 > Compilation failed in require at -e line 1. > BEGIN failed--compilation aborted at -e line 1. > [oracle ~]$ export LD_LIBRARY_PATH=/oracle/product/db/11.1/lib > [oracle ~]$ perl -e 'use DBD::Oracle; print $DBD::Oracle::VERSION,"\n";' > 1.15 > > But if I do the following instead in the Perl script, it does not work? How > to set the LD_LIBRARY_PATH then? > > $ENV{ORACLE_HOME}=$ORACLE_HOME; > $ENV{ORACLE_SID}=$ORACLE_SID; > $ENV{PATH}="$ORACLE_HOME/bin:$PATH"; > $ENV{LD_LIBRARY_PATH}="$ORACLE_HOME/lib"; > > FYI, the script is to run from a cron which is why am setting > LD_LIBRARY_PATH in the script. > > Any response will be very much appreciated. Thanks in advance. > -- Catch Alex & Sheeri at ODTUG/Kaleidoscope - June 27 - July 1. Hear Sheeri speak or email eve...@pythian.com to meet with Pythian.