socketでhtmlドキュメントをGET

どこかのサイトで見たほぼそのままのソース。


$geturl = "http://d.hatena.ne.jp/shinchan/rss";
$geturl =~ /http:\/\/([^\/+?)\/(.*)/i;
$hostname = $1;
$file_addr = "/$2"

$addr = (gethostbyname("$host"))[4];
$name = pack("S n a4 x8", 2, 80, $addr);

socket(S, 2, 1, 0);
connect(S,$name);
binmode(S);
select(S); $| = 1; select(stdout);
print S "GET $file_url HTTP/1.0\r\n\r\n";
@file = <S>;
close(S);

テストしてみたところ大体うまくいってたんだけど、サーバの直下にないものがうまく取れない。
"/~shinchan/index.html"を取るときは"GET /%7Eshinchan/index.html HTTP/1.0"とすれば解決。
けど独自ドメインが当てられているサイトはどうすればいいんだろぉ、、、