IO::Socket::UNIX(3p)

IO::Socket::UNIX3p

Object interface for af_unix domain sockets

Usage

    use IO::Socket::UNIX;
    my $SOCK_PATH = "$ENV{HOME}/unix-domain-socket-test.sock";
    # Server:
    my $server = IO::Socket::UNIX->new(
        Type => SOCK_STREAM(),
        Local => $SOCK_PATH,
        Listen => 1,
    );
    my $count = 1;
    while (my $conn = $server->accept()) {
        $conn->print("Hello " . ($count++) . "\n");
    }
    # Client:
    my $client = IO::Socket::UNIX->new(
        Type => SOCK_STREAM(),
        Peer => $SOCK_PATH,
    );
    # Now read and write from $client

Overview

"IO::Socket::UNIX" provides an object interface to creating and using sockets in the AF_UNIX domain. It is built upon the IO::Socket interface and inherits all the methods defined by IO::Socket.

Constructor

new ( [ARGS] )

Creates an "IO::Socket::UNIX" object, which is a reference to a newly created symbol (see the Symbol package). "new" optionally takes arguments, these arguments are in key-value pairs.

In addition to the key-value pairs accepted by IO::Socket, "IO::Socket::UNIX" provides.

    Type        Type of socket (eg SOCK_STREAM or SOCK_DGRAM)
    Local       Path to local fifo
    Peer        Path to peer fifo
    Listen      Queue size for listen

If the constructor is only passed a single argument, it is assumed to be a "Peer" specification.

If the "Listen" argument is given, but false, the queue size will be set to 5.

If the constructor fails it will return "undef" and set the $IO::Socket::errstr package variable to contain an error message.

    $sock = IO::Socket::UNIX->new(...)
        or die "Cannot create socket - $IO::Socket::errstr\n";

For legacy reasons the error message is also set into the global $@ variable, and you may still find older code which looks here instead.

    $sock = IO::Socket::UNIX->new(...)
        or die "Cannot create socket - $@\n";

Methods

hostpath()

Returns the pathname to the fifo at the local end

peerpath()

Returns the pathanme to the fifo at the peer end

Releases

32 releases since OpenBSD 5.0; the text changed 20 times.

  1. 5.0–5.3
  2. 5.4–5.5
  3. 5.6
  4. 5.7
  5. 5.8–5.9
  6. 6.0
  7. 6.1
  8. 6.2
  9. 6.3–6.4
  10. 6.5
  11. 6.6
  12. 6.7
  13. 6.8
  14. 6.9–7.2
  15. 7.3
  16. 7.4
  17. 7.5
  18. 7.6
  19. 7.7–7.8
  20. 7.9
  21. 8.0

Author

Graham Barr. Currently maintained by the Perl Porters. Please report all bugs at <https://github.com/Perl/perl5/issues>.

From man 8.0-current-20261101 in OpenBSD 8.0-current (2026-11-01). Parsed by carta from the page's man source.