sub peername { @_ == 1 or croak 'usage: $sock->peername()'; my($sock) = @_; getpeername($sock) || ${*$sock}{'io_socket_peername'} || undef; }