加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl – open(HANDLE,“ – |”,$cmd,@ args):如何阅读stderr?

发布时间:2020-12-16 06:13:23 所属栏目:大数据 来源:网络整理
导读:我想将包含stderr的命令输出读入HANDLE: open(HANDLE,"-|",$cmd,@args); 但上面的命令只是读取标准输入? 我怎么能读到stderr? 解决方法 IPC::Run模块提供的运行功能类似于增压系统.它允许我们收集STDERR和STDOUT的输出组合: run [$cmd,@args],'',my $ou
我想将包含stderr的命令输出读入HANDLE:

open(HANDLE,"-|",$cmd,@args);

但上面的命令只是读取标准输入?

我怎么能读到stderr?

解决方法

IPC::Run模块提供的运行功能类似于增压系统.它允许我们收集STDERR和STDOUT的输出组合:

run [$cmd,@args],'&>',my $output;

之后,$output变量将组合输出保存为字符串.

例:

use IPC::Run qw/ run /;
run ['perl','-E say "stdout"; say STDERR "stderr"'],my $output;
print uc $output;

输出:

STDOUT
STDERR

我不知道如何使用文件句柄代替标量引用,以便可以在while(< $fh>)循环中正常读取输出.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读