Dear Tim, I was just getting ready to ship DBD::Informix 2004.02 when I made the mistake of testing it with Perl 5.6.1 and DBI 1.46. I ran into problems with a DBD::Informix test that was expecting an error code to be set in a $SIG{__WARN__} handler. Perl 5.8.5 and 5.8.6 are fine with it, I hasten to add.
I went back and tested DBD::Informix 2003.04 with DBI 1.46 and Perl 5.6.1, and it fails too. Then I tested DBD::Informix 2003.04 with DBI 1.38 (no problem), DBI 1.42 (no problem), DBI 1.43 (problem). I don't happen to have DBI 1.44, but that only lasted a day or two before being replaced with DBI 1.45 (which fails, of course). I did a 'make clean' before rebuilding DBD::Informix each time. The test code isn't the simplest, playing with the %SIG hash. The test is t/t60unlog.t (you could get the original from CPAN if you need it), but the relevant section is: my $msg; $SIG{__WARN__} = sub { $msg = $_[0]; }; print "# I'm here\n"; $dbh = DBI->connect("dbi:Informix:$dbname", $user, $pass, { AutoCommit => 0, PrintError => 1 }); $SIG{__WARN__} = 'DEFAULT'; print "# Connection failed - which is the correct response\n" if (!defined $dbh); print "ok 7\n" if (!defined $dbh); print "not ok 8\n" unless($msg && $msg =~ /-256:/); print $DBI::errstr; This is a negative test - the connection is supposed to fail because the database cannot work with autocommit off, and the error generated happens to be -256 (Transaction not available). The comparison in the last-but-one line is failing - instead of the -256 message number plus colon, the code is seeing '(no error string)', even though when I subsequently print $DBI::errstr, the correct message is visible. (The code above is a translation - the print statements are actually calls to DBD::Informix::TestHarness functions which do the printing. The "I'm here" message actually reflects the connection string. The ok message is generated by &stmt_ok(), and the failure by &stmt_fail()), and the print $DBI::errstr occurs in &stmt_err(), called from &stmt_fail()). As I noted above, Perl 5.8.x seems to be quite happy -- I've not yet gone back to check 5.8.0 -- but 5.6.1 is not. And all that's changing between the working and the failing code is the version of DBI. I built the Perl in 2001. It happens to be running on Solaris 8 (but was built on Solaris 7) with GCC 2.95.3 (now using 3.4.3). -- Jonathan Leffler ([EMAIL PROTECTED]) STSM, Informix Database Engineering, IBM Data Management 4100 Bohannon Drive, Menlo Park, CA 94025 Tel: +1 650-926-6921 Tie-Line: 630-6921 "I don't suffer from insanity; I enjoy every minute of it!"