約束事で動作している3台のエコーサーバーをコーディングしようとしていますが、どのような約束がエコーをしているのかを知りたいと思います。それを行う方法はありますか?perl6約束の特定のアイデンティティーを取得する方法は?
no strict;
for 0 .. 2 -> $index {
@result[$index] = start {
$myID = $index;
say "======> $myID\n";
my $rsSocket = IO::Socket::INET.new:
localhost => 'localhost',
localport => 1234 + $index,
listen => 1;
while $rsSocket.accept -> $rsConnection {
say "Promise $myID accepted connection";
while $rsConnection.recv -> $stuff {
say "promise $myID Echoing $stuff";
$rsConnection.print($stuff);
}
$rsConnection.close;
}
}
}
await @result;
エコーサーバーは正常に実行されます。 "nc"でテストした。
問題は$myID
となります。約束が作成された後に2
となり、現在のエコーを行っている約束を知る方法がありません。すべての約束によって、$myID
が使用されているようです。個々の約束に固有の変数を作成する方法はありますか?
Timbusありがとう!取られたアドバイス! – lisprogtor