class X::Proc::Async::TapBeforeSpawn is Exception {}

如果在程序已start后调用了 Proc::Asyncstdoutstderr方法,则会抛出类型为X::Proc::Async::TapBeforeSpawn的异常。

my $proc = Proc::Async.new("echo""foo");
$proc.start;
$proc.stdout.tap(&print);
CATCH { default { put .^name''.Str } };
# OUTPUT: «X::Proc::Async::TapBeforeSpawn: To avoid data races, you must tap stdout before running the process␤»

正确的顺序是相反的

my $proc = Proc::Async.new("echo""foo");
$proc.stdout.tap(&print);
await $proc.start;

方法§

方法 handle§

method handle(X::Proc::Async::TapBeforeSpawn:D: --> Str:D)

返回在程序启动后访问的句柄(stdoutstderr)的名称。