On Sun, 13 Apr 2003, Dmitry Melekhov wrote:
Another problem is with perl in cygwin.
On Linux I can set
$ENV{PATH} and $ENV{ORACLE_HOME} inside
perl script, but in cygwin I had to write shell script to call perl script:
Does it work in Linux if you DON'T set $ENV{PATH} and
$ENV{ORACLE_HOME} inside your program? Are you sure they are
not set elsewhere in your environment?
#!/bin/sh
PATH=/cygdrive/c/oracle/ora81/bin ORACLE_HOME='c:\oracle\ora81'
/home/tabel/test.pl
or I received following error:
install_driver(Oracle) failed: Can't load
'/usr/lib/perl5/site_perl/5.8.0/cygwin-multi-64int/auto/DBD/Oracle/Oracle.dl
l' for module DBD::Oracle: dlopen: Win32 error 126 at
/usr/lib/perl5/5.8.0/cygwin-multi-64int/DynaLoader.pm line 232
if I try to call perl script from .forward.
This is thing I still don't understand. :-(
Does it work in cygwin if you set them in a BEGIN { } block at
the top of the script. Quoting perlmod,
A "BEGIN" subroutine is executed as soon as possible, that is, the
moment it is completely defined, even before the rest of the containing
file is parsed. ... Because a "BEGIN" block executes
immediately, it can pull in definitions of subroutines and such from
other files in time to be visible to the rest of the file.