socket関数

とほほのperl入門より

$addr = (gethostbyname("www.xxx.zzz"))[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 /index.html HTTP/1.0\r\n\r\n";
while (<S>) { print; }
close(S);

でHTMLドキュメントが拾ってこれるようだ。
、が1行目からして何をしているのか分からない。
$addrには何がはいるの?
[4]ってなんでしょう?