0

シェル コマンドを実行し、バックティックを使用して 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

シェル コマンドの出力が STDOUT に送信されていないことを意味します。誰かがなぜこれが起こっているのか説明できますか?

どんな助けでも大歓迎です。

4

1 に答える 1