#!/usr/bin/perl

use Socket; # Socket モジュールを使う

# HTTP プロトコルを使う
$port = getservbyname('http','tcp');

# ホスト名を、IP アドレスの構造体に変換
$iaddr = inet_aton("www.cs.gunma-u.ac.jp")
or die "www.cs.gunma-u.ac.jpは存在しないホストです。\n";

# ポート番号と IP アドレスを構造体に変換
$sock_addr = pack_sockaddr_in($port,$iaddr);

# ソケット生成
socket(SOCKET,PF_INET,SOCK_STREAM,0)
or die "ソケットを生成できません。\n";

# 指定のホストの指定のポートに接続
connect(SOCKET,$sock_addr)
or die "www.cs.gunma-u.ac.jpのポート$portに接続できません。\n";

# ファイルハンドル SOCKET をバッファリングしない
select(SOCKET); $|=1; select(STDOUT);

# WWWサーバにHTTPリクエストを送る
print SOCKET "GET /index.html HTTP/1.0\r\n";
print SOCKET "\r\n";

# ヘッダ部分を受け取る
while (<SOCKET>){
# 改行のみの行ならループを抜ける
m/^\r\n$/ and last;
}

# ボディ部分を受け取り、表示
while (<SOCKET>){
print $_;
}
どこかまちがってる?