http://www.perlmonks.org?node_id=1199241
sirhalos has asked for the wisdom of the Perl Monks concerning the following question:

Servers are running Solaris 10 running Perl 5.8.4 32-bit.

The database department has several versions of Oracle installed from version 10 ~ 12 both 64-bit and 32-bit.

To get around that they have a bourne shell script that when you give it a SID it looks at a file that will source the proper ORACLE_HOME, LD_LIBRARY_PATH, SQL_PRODDIR, FORM_PRODDIR, ORACLE_SID, etc. to your shell's setopt. When I look at how the script changed things it points to Oracle's 64-bit library directory.

My department maintains a few thousand scripts still using Solaris 10 with a few hundred crons. We have 3 new Linux VM's which I installed perlbrew on in our departments directory to migrate to. However, we really need to have a newer version of Perl running on Solaris too to help this migration. I can compile a newer version of Perl for Solaris in our department directory but I have run into problems.

Problem 1: I haven't been about to figure out how they managed to run Perl 5.8.4 32-bit pointing to the Oracle 64-bit library directory. When I compile Solaris myself and then install DBI, then DBD it will fail without pointing LD_LIBRARY to Oracles 32-bit directory.

Problem 2: They are roughly 80 employees using one of these Solaris servers (filesystems all linked together). I do not have root, IT no longer supports the servers that they think no one uses anymore. Therefore, I cannot add a new LD_LIBRARY_PATH to each employees .profile.

Problem 3: I cannot update a few thousand scripts to add a BEGIN block with $ENV{LD_LIBRARY_PATH} to get around their script and mimic it, since it needs the SID, and I won't know the SID, unless I run a web service...

Therefore, I really need help getting this to work. I need to just know how I'm compiling either Solaris incorrectly (the documentation isn't well), or DBD::Oracle. There must be something in there where it is allowing 32-bit and 64-bit libraries to co-exist, it is the only thing I can figure out.

This was the last compile style I tried to accept this mix/match. sh Configure -des -Dprefix=/support/d63/perl5-solaris -D_LARGEFILE64_SOURCE

Is there anyway I can figure out based on the previous Perl install?

I do not have root. IT does not support these servers that run the entire frontend of the company. I will be leaving the department soon and I really want to leave a good Perl setup behind, it is very important to me (I was the main/only Perl programmer for the entire operation). I have spent the past few years modernizing the Perl and moved a lot to Linux, but it hasn't put a dent into this operation. I have spent the last 2 weeks writing Perl documentation from Modern Perl, to Moose, and more. This is the only thing left I really want to get to work. This department is in grave danger with their current setup and I'm trying to save them before they don't have a department and a newer one comes along with something else. I just want to leave them with the newest Perl, working with DBI and DBD::Oracle the way it already does so they can use my documentation to do more Modern things, move off Solaris to Linux and so forth to modernize things when I'm gone to keep the department running for years to come.