or set LD_LIBRARY_PATH in the cron.
On 06-Nov-2002 Darin McBride wrote:
> On November 5, 2002 04:41 pm, you wrote:
>> When I need to have a "use DBD::Oracle qw(:ora_types);" in my program, and
>> I am running from cron, I get a message like:
>>
>> Can't load '<long path>/auto/DBD/Oracle/Oracle.so' for module DBD::Oracle:'
>> at the use DBD::Oracle line.
>>
>> Other programs that just have a 'use DBI' are fine. The normal program
>> structure I have so that programs work from cron is like:
>>
>> use DBI;
>> ....
>> <setup Oracle variables, including LD_LIBRARY_PATH>
>> ....
>> $dbh=DBI->connect($dsn, $username, $password, { ora_module_name => $me })
>> ....
>> etc
>>
>> but as soon as I add;
>>
>> use DBD::Oracle qw(:ora_types);
>>
>> I get the error, because the symbol import is done at compile time, before
>> my program has had a chance to set up the environment properly.
>>
>> Any ideas how to get around this problem? So far I am explicitly setting
>> LD_LIBRARY_PATH in the crontab entry, but I was trying to have it all
>> happen inside the program.
>
> Two basic ideas:
>
> BEGIN { <setup Oracle variables, etc.> }
> use DBD::Oracle qw(:ora_types);
>
> or:
>
> eval 'use DBD::Oracle qw(:ora_types)';
> die $@ if $@;
>
> The first one gets your environment set up before the use, since BEGIN
> is executed during compilation, while the second option will delay the
> compilation of the use DBD::Oracle until the eval is reached.
> Personally, I would suggest the first option where possible.
>
>> Australia Post is committed to providing our customers with excellent
>> service. If we can assist you in any way please either telephone 13 13 18
>> or visit our website www.auspost.com.au.
>>
>> CAUTION
>>
>> This e-mail and any files transmitted with it are privileged and
>> confidential information intended for the use of the addressee. The
>
> Which addressee? :-)
>
>> confidentiality and/or privilege in this e-mail is not waived, lost or
>> destroyed if it has been transmitted to you in error. If you have received
>> this e-mail in error you must (a) not disseminate, copy or take any action
>> in reliance on it; (b) please notify Australia Post immediately by return
>> e-mail to the sender; and (c) please delete the original e-mail.
----------------------------------
E-Mail: [EMAIL PROTECTED]
Date: 06-Nov-2002
Time: 10:27:57
----------------------------------