Hello, First: I am running apache/mod-perl on a NT box as a web server. Sorry it is not unix, it is the only tool I can have. Kind of a forward question, but I am curious about something. My large web site talks to a back-end product that uses an API and I use the IO::Socket to talk to it. It is a pure socket application. It takes the place of a database back-end. So my question is, should I create a global socket handle, and then use it all the time, or is it best to just call for the handle each time I need request some data? The reason I ask is as follows: I have the code below which works, but I cannot seem to ask two socket calls back to back? I don't know why. Maybe it is a learning curve I have to perfect. Anyway, I figured I would ask people who would know for their input. So if anyone has any opinions, could you fill me in? Thanks for your time, Scott Purcell #### code that works, called from another file with a &ask routine. use strict; use vars qw($socket); $socket = IO::Socket::INET->new(Proto => 'tcp',PeerAddr => '208.238.162.204',PeerPort => '8000') or die ("Socket issue @!"); $socket->autoflush(1); sub ask { ### perl apache notes for my sanity during testing my $counter = 0; for (1..5) { increment_counter(); } sub increment_counter{ $counter++; print "Counter is equal to $counter !\r\n"; } #### end counter eg for sanity use IO::Socket; use CGI; use CGI::Carp qw(fatalsToBrowser); # my $q = CGI->new; print $q->header; print $q->start_html; my $querystring = "\' \'\$USER_NAME"; my $fieldlist = "USER_NAME\nPASSWORD\n"; my $db = "/DISK2/VBank/bin/sysdbase/dbuser.dbf"; my $message = "DBASEQUERY\nSYSTEM\n$querystring\nLIST\tFIELDS\n$fieldlist\nENDLIST\nLIST\t DBASES\n$db\nENDLIST\n"; my $msgid = int(rand(1000)); $message = $msgid . "\t" . $message; my $msgsize = length($message); print "$message IS OUR MESSAGE<BR>\n"; print $socket "\%BEGIN\t$msgsize\n$message"; my $err = 0; my $header; my $response; my $cc; while ($err < 50) { if (read($socket, $cc, 1, 0) == 1) { $header .= $cc; print "$header is header<br>\n"; if ($header =~ /^\%BEGIN\s+(\d+)\r?\n/) { my $rspsize = $1; read($socket, $response, $rspsize, 0); print "$response is response<br>\n"; exit; } } else { print "NO data<br>\n"; exit; } $err++; } }