# Pastebin TJJDOy0Q sub panexec(Str() :$content, :$defaults, :@filters) is export { my @cmd = ; @cmd.append: ['--defaults', $defaults] if $defaults; if @filters { for @filters { @cmd.append: ['--filter', $_]; } } my $cmd = Proc::Async.new(:w, |@cmd); my $document = buf8.new(); react { whenever $cmd.stdout(:bin) { say 'awoo'; $document ~= $_; } whenever $cmd.stderr { say $_; } whenever $cmd.ready { say 'Document conversion started; PID: ', $_; $cmd.print: $content; $cmd.close-stdin; } whenever $cmd.start { say ‘Finished: exitcode=’, .exitcode, ‘ signal=’, .signal; done; } } return $document; }