Just a thought, but I think its just the order in which everything is in
@INC and you'll need to get rid of the DBI you don't want.. Something like
this may work at the top of your script..
BEGIN {
unshift (@INC,
"/usr/local/lib/perl5/site_perl/5.6.1/sun4-solaris/auto/DBD/Sybase/Sybase.so
");
}
use lib '/path/to/user/projects/modules/DBD-Sybase/';
use lib '/path/to/user/projects/modules/DBI/';
-Chris
>> -----Original Message-----
>> From: John Ulmer [mailto:[EMAIL PROTECTED]]
>> Sent: Monday, December 09, 2002 11:14 AM
>> To: [EMAIL PROTECTED]
>> Subject: manipulating @INC to use a different DBD::Sybase
>>
>>
>> Good Day all,
>>
>> Environment: SunOS egret 5.8 Generic_108528-03 sun4u sparc SUNW,Ultra-60
>> # /usr/local/bin/perl -v shows -- This is perl, v5.6.1
>> built for sun4-solaris
>>
>> DBI version 1.25
>> DBD::Sybase version 0.95
>> Freetds Version 0.60 (nightly snapshot from 12/6/02, plus or
>> minus a day - to avoid a cs_ctx_global variable problem between
>> freetds and DBD::Sybase.)
>>
>> I do not have root priviledges.
>> There is a non-working version of the freetds libs and
>> DBD::Sybase on the system in the default PERL install paths (@INC).
>>
>> I performed a local install of the freetds libs and tsql
>> connects to a remote MS SQL Server succesfully.
>> Then, "exported SYBASE=/path/to/freetds/libs/"
>> Then, succesfully built a local version of DBD::Sybase using the
>> new Freetds libs.
>> "Make test" shows no errors other than those test skipped due to
>> system architecture.
>>
>> The problem:
>>
>> When I try to use the new Sybase module, Perl seems to be going
>> back to a previously installed and non-working
>> version of DBD::Sybase in the default @INC. I tried the
>> following to point it at the new Sybase.pm but it seems
>> to persist in trying to use the older non-working version.
>>
>> The connect statement in this code:
>>
>> #!/usr/local/bin/perl
>> use lib '/path/to/user/projects/modules/DBD-Sybase/';
>> use lib '/path/to/user/projects/modules/DBI/';
>> use DBI;
>> my $dbh = DBI->connect("dbi:Sybase:server=stagesrv", 'sqltest',
>> 'spamspam', {PrintError => 0});
>> unless ($dbh) { die "Unable for connect to server $DBI::errstr"; }
>>
>> produces this ERROR:
>>
>> prompt# test_sybase_connect.pl
>> ld.so.1: /usr/local/bin/perl: fatal: relocation error: file
>> /usr/local/lib/perl5/site_perl/5.6.1/sun4-solaris/auto/DBD/Sybase
>> /Sybase.so: symbol cs_ctx_global: referenced
>> symbol not found
>> Killed
>>
>> Why is it trying to use
>> "/usr/local/lib/perl5/site_perl/5.6.1/sun4-solaris/auto/DBD/Sybas
>> e/Sybase.so" instead of the new one in my user dir?
>> How do I manipulate @INC so that the DBI will use my local
>> installation of DBD::Sybase?
>>
>> As is always true, any ideas or suggestion would be appreciated.
>>
>>
>> --
>> John R. Ulmer
>> Senior Computer Analyst
>> TPMC Contractor
>> NOAA Coastal Services Center
>> [EMAIL PROTECTED]
>> (843)740-1228
>> 2234 South Hobson Avenue, Charleston, SC 29405
>>
>>