I have a strange problem where a database handle is being destroyed for no apparent reason. My initial idea was to parse some xml, and translate it into a database. Deleting line after line of code I came up with this short meaningles program which exhibits the same behavior as its real-life sibling (tested against two different mysql instalations on different machines):
use warnings; use strict; use DBI; use XML::Twig; ++$|; #so I can see the progress in _dummy () my $dbh = DBI->connect ( "dbi:mysql:$random_db:localhost", $user, $pass, { AutoCommit => 0, RaiseError => 1, PrintError => 0, } ); unless ($dbh) { print "Unable to connect:\n$DBI::errstr\n"; exit 1; }; eval { $dbh->do ("DROP TABLE IF EXISTS some_nonexistant_table") }; die ($@) if $@; my $objinfo_parser = XML::Twig->new ( twig_handlers => { 'Products/Product' => \&_dummy } ); $objinfo_parser->parseurl ('http://www.3btech.net/3btech/objinfo.xml'); $dbh->commit; $dbh->disconnect; exit 0; sub _dummy { my ($twig, $child) = @_; print '.'; $twig->purge(); return 'dummy'; } Note that I am not even doing any real operations on the MySQL side, thus I don't care what database I connect to. I put the DROP TABLE there just to make sure that commands are reaching the server, and yes I can see that in the logs. If I run the real program I end up stuffing about 480 out of roughly 510 products into a designated table and then the handle goes out to lunch with the same error message. I use the very same XML::Twig setup in another script that packs results into a hash and returns it, and everything works flawlessly. Any help is priceless, as after nearly two days playing with this I am totally lost... Thanks Peter -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>