Когда вы tap
переменную $socket
, вы получаете ( недокументированный ) IO::Socket::Async::ListenSocket
объект.У этого есть пара методов socket-port
и socket-host
, которые Promises
, тогда, когда они разрешают, имеют правильные значения.
Мы можем, вероятно, привести в порядок документы, чтобы указать это.
Пример:
my $s = IO::Socket::Async.listen("127.0.0.1",0);
my $t = $s.tap;
my $p = await $t.socket-port;
$p.say;