2011/12/01(木)[Perl5] 騙されたなぁorz
2017/10/12 4:44
use IO::Socket; unlink "/tmp/mysock"; $server = IO::Socket::UNIX->new(LocalAddr => "/tmp/mysock", Type => SOCK_DGRAM, Listen => 5 ) or die $@; $client = IO::Socket::UNIX->new(PeerAddr => "/tmp/mysock", Type => SOCK_DGRAM, Timeout => 10 ) or die $@;しかし、はっきり言って騙されました。 見かけ上は起動するけれど、実際はソケットファイルが作成されないです。 これが、現行で正しい例:
use IO::Socket my $socket_path = '/tmp/wibble'; unlink($socket_path); my $server = IO::Socket::UNIX->new( Type => SOCK_STREAM, Local => $socket_path, Listen => 5 ) or die("Can't create server socket: $!\n"); my $sock = $server->accept() or die("Can't accept connection: $!\n"); my $client = IO::Socket::UNIX->new( Type => SOCK_STREAM, Peer => $socket_path, ) or die("Can't connect to server: $!\n");LocalAddr ではなく Local 、 PeerAddr ではなく、Peer です。
今更ながら気付いたのですが、Perl CookBook 第一版 は、2001年刊行の本でした。
Perl 4 から Perl 5 に移行して間もない頃で、確かにハッシュパラメータ名などは違っていたかも・・・です。