use Socket; my $host = "teh-web-box"; my $port = "80"; my $phost = "teh-proxy-box"; my $pport = "1080"; my $fh = "fixed_string"; #part 1 socket($fh, PF_INET, SOCK_STREAM, getprotobyname("tcp")) my $paddr = pack_sockaddr_in($port, inet_aton($host)); eval { $SIG{'ALRM'} = sub { die; }; alarm( 5 ); connect( $fh, $paddr ); alarm(0); }; #### use Socket; use IO::Socket::Socks; my $host = "teh-web-box"; my $port = "80"; my $phost = "teh-proxy-box"; my $pport = "1080"; my $fh = "fixed_string"; my $s; if ( no_proxy() ) { #part 1 ... } else { $s = new IO::Socket::Socks( ProxyAddr => $phost, ProxyPort => $pport, ConnectAddr => $host, ConnectPort => $port, ); } # now reconcile $fh and $s.