シェル コマンドを実行し、バックティックを使用して 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 に送信されていないことを意味します。誰かがなぜこれが起こっているのか説明できますか?
どんな助けでも大歓迎です。