вообще должно сработать...
use Socket;
my $term_escaped = $ARGV[0];
my $proto = getprotobyname(\'tcp\');
my $host = "www.google.ru";
my $port = 80;
my $request = sprintf("GET /search?q=%s HTTP/1.1
Accept: */*
AcceptCharset: *
Accept-Language: ru
Host: $host
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
Proxy-Connection: Keep-Alive
", $term_escaped);
socket(SOCK, PF_INET, SOCK_STREAM, $proto);
my $iaddr = gethostbyname($host);
my $paddr = sockaddr_in($port, $iaddr);
connect(SOCK, $paddr);
my $old_fh = select(SOCK);
$| = 1;
select($old_fh);
print SOCK $request;
while(<SOCK>){
push(@results, $1) if /<a.*class=l.*href=\\"(\\S+)\\".*>.*<\\/a>.*/;
# my @results = <SOCK>;
}
my $i = 1; my $max = 5;
while ($i <= $max) {
printf("%s" ,$results[$i]));
$i++;
}