Before trying other things I would try something like:
#!/usr/bin/perl BEGIN { unless ($ENV{DONE_RESTARTING_MYSELF}) { # avoid endless loop... $ENV{DONE_RESTARTING_MYSELF} = 1; $ENV{ORACLE_HOME} = "/opt/oracle/product/10.2.0/client_1"; $ENV{LD_LIBRARY_PATH} = "/opt/oracle/product/10.2.0/client_1/l +ib32:/usr/local/lib/sprolib:/usr/local/lib:/usr/lib:/usr/openwin/lib: +/usr/dt/lib:/usr/lib:/usr/ucblib"; exec $0, @ARGV; # <--- } } use DBI; # ...
Or simply use a shell wrapper around your Perl script:
#!/bin/sh export ORACLE_HOME=/opt/oracle/product/10.2.0/client_1 export LD_LIBRARY_PATH=/opt/oracle/product/10.2.0/client_1/lib32:/usr/ +local/lib/sprolib:/usr/local/lib:/usr/lib:/usr/openwin/lib:/usr/dt/li +b:/usr/lib:/usr/ucblib /path/to/your/script.pl
As for the ELFCLASS64 error, the reason is that the (64-bit) lib is being found in /opt/oracle/product/10.2.0/client_1/lib, instead of the 32-bit one in the .../lib32 directory that you tried to specify via LD_LIBRARY_PATH — because setting the env variable too late (after exec of perl) doesn't have any effect, as already mentioned.
In reply to Re^3: Env Variables
by almut
in thread Env Variables
by LinuxUser2008
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |