我正在尝试执行一个 shell 命令,并使用反引号在 perl 中捕获其输出,并将输出同时发送到 STDOUT,
#!/usr/bin/perl
use strict;
use warnings;
my $output = `echo test1 | tee /dev/fd/1`;
print "op : $output";
这有效并给了我这样的输出,
op : test1
test1
但是,当我将命令的输出分配给数组而不是标量时,它不像以前那样工作,
my @output = `echo test1 | tee /dev/fd/1`;
print "op : $output[0]";
这将打印数组变量,但不打印echo
输出,
op : test1
这意味着没有将 shell 命令输出发送到 STDOUT。有人可以解释为什么会这样吗?
非常感谢任何帮助。