use IO::Socket::INET; use Data::Dumper; use strict; my $s = new IO::Socket::INET(Proto => "tcp", PeerAddr => "www.yahoo.com", PeerPort => 80) || die "failed to new socket\n"; print $s "GET http://www.yahoo.com HTTP/1.1\r\nHost: www.yahoo.com\r\n\r\n"; my $response; while (<$s>) { chomp; if (m/^\s*$/) {last}; m/(.*?)[:| ]\s*(.*?)[\r|\n]/; $response->{$1} = $2; } close($s); print Dumper($response);