gpt4 book ai didi

perl - 命令输出定向到屏幕

转载 作者:行者123 更新时间:2023-12-02 08:53:32 25 4
gpt4 key购买 nike

新手 Perl 程序员来了!我正在使用 system() 函数来获取外部程序(在本例中为 php)的返回代码,但是,命令的输出仍然打印到屏幕上。
我如何防止它这样做?我的代码是:

use strict; use warnings;
print 'Return code:', system('php -l wrong.php'), "\n";

此代码确实打印返回代码,但它也打印所执行命令的输出。

任何帮助将不胜感激!

编辑:进一步测试表明,仅使用 php lint 命令时会发生这种情况。将其与其他命令一起使用不会打印任何内容...

最佳答案

你想要的是IPC::Open3 :

    use IPC::Open3;
use Symbol qw(gensym);

my $err = gensym; #work around IPC::Open3's interface
my $pid = open3 my $wtr, my $rdr, $err,
'some cmd', 'arg1', 'arg2', ...;

将 stdin 分离为 $wtr,将 stdout 分离为 $rdr,将 stderr 分离为 $err这也使您可以最大程度地控制与进程的通信

关于perl - 命令输出定向到屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6724466/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com