当前位置:  开发笔记 > 编程语言 > 正文

如何从Perl脚本中捕获系统命令的stdin和stdout?

如何解决《如何从Perl脚本中捕获系统命令的stdin和stdout?》经验,为你挑选了1个好方法。

在Perl脚本的中间,有一个我想要执行的系统命令.我有一个字符串,其中包含需要输入stdin的数据(该命令只接受来自stdin的输入),我需要捕获写入stdout的输出.我已经看过在Perl中执行系统命令的各种方法,而且open函数似乎是我需要的,除了它看起来我只能捕获stdin或stdout,而不是两者.

目前,似乎我最好的解决方案是使用open,将stdout重定向到临时文件,并在命令完成后从文件中读取.有更好的解决方案吗?



1> xdg..:

IPC :: Open2/3很好,但我发现通常我真正需要的只是IPC :: Run3,它可以很好地处理简单的情况并且复杂度最低:

use IPC::Run3;    # Exports run3() by default

run3( \@cmd, \$in, \$out, \$err );

该文档将IPC :: Run3与其他替代方案进行了比较.即使您不决定使用它,也值得一读.

推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有