Please note that HTTP::Daemon used to be a subclass of IO::Socket::INET. To support IPv6, it switched the parent class to IO::Socket::IP at version 6.05.
The accept() method will return when a connection from a client is available. The returned value will be an HTTP::Daemon::ClientConn object which is another IO::Socket::IP subclass. Calling the get_request() method on this object will read data from the client and return an HTTP::Request object. The ClientConn object also provide methods to send back various responses.
This HTTP daemon does not fork(2) for you. Your application, i.e. the user of the HTTP::Daemon is responsible for forking if that is desirable. Also note that the user is responsible for generating responses that conform to the HTTP/1.1 protocol.