Here’s a patch:
# diff -u multi_http_responsetime.orig multi_http_responsetime --- multi_http_responsetime.orig 2010-02-01 10:13:22.000000000 +0100 +++ multi_http_responsetime 2010-02-01 10:30:23.000000000 +0100 @@ -16,6 +16,9 @@ use Time::HiRes qw( time ); use IO::Socket; +$FAILED=0; +$INFINITE=999999; + # ----- config ----- push(@url_array, "http://www.google.de"); push(@url_array, "http://www.t-online.de"); @@ -34,7 +37,7 @@ PeerPort => 80, Proto => 'tcp' ); - return(0) unless ($sock); + return($FAILED) unless ($sock); print $sock "GET $baseurl HTTP/1.1\nHost: $vhost\nConnection: close\n\n"; while (<$sock>) { $data .= $_; @@ -63,11 +66,16 @@ $baseurl =~ s@^\w+://.+?(/)@\1@; $tick1 = time(); - geturl; + $retval = geturl; $tick2 = time(); - $tspent = $tick2-$tick1; - $msecs = ($tspent * 1000); + if ($retval == $FAILED) { + $msecs = $INFINITE; + } + else { + $tspent = $tick2-$tick1; + $msecs = ($tspent * 1000); + } printf "timespent$i.value %.3f\n", $msecs; }