在 Perl6 脚本中并发执行 ssh 命令
这篇讲的是作者在 Perl6 中并发执行 SSH 命令时的一次实战尝试。由于找不到合适的现有模块,且底层 C 库不兼容其 Kerberos 认证环境,作者决定绕开高层并发 API(如 Promise/Supply),直接使用更底层的 Thread 和 Channel 来实现。 文章围绕一个简洁的 OpenSSH 类展开,展示了如何通过多方法实现单个主机与多主机的命令执行。作者特别指出,虽然 Perl6 宣传了高级并发模型,但 API 迭代较快,有时选择更稳定的底层原语反而更可靠。 代码示例串联了不少 Perl6 语法点:类的属性定义、字符串连接符 `~`、用于捕获错误的 `try`/`CATCH`、执行系统命令的 `qqx{}`,以及 `>>` 操作符在数组上的线程化 finish 操作。作者也坦诚,示例代码较为简陋,例如依赖密钥登录且未使用线程池调度。 整体来看,这是一份结合了具体需求、实现思路与语法讲解的笔记,既分享了在 Perl6 中集成系统命令与并发控制的方法,也客观分析了语言特性在实际场景下的应用考量。