gpt4 book ai didi

perl - 如何将 Perl 输出发送到 STDOUT 和变量?

转载 作者:行者123 更新时间:2023-12-04 02:42:54 25 4
gpt4 key购买 nike

我想将命令的输出发送到 STDOUT 和变量。我想结合:

my $var = `some command` ;   
system( 'some command' ) ;

Tee是朝着正确方向迈出的一步,但这会将其发送到文件而不是变量。我想我可以然后阅读该文件,但直接在那里获取它会更简单。

最佳答案

两个流的输出是否是同时的?

如果没有,你可以这样做:

my $var = 'cmd'
my $output = `$cmd`
print STDOUT $output

或者对于更安全的版本,它不涉及调用子shell,并一次打印到 STDOUT 一行:
sub backtick(@)
{
my $pid = open(KID, '-|');
die "fork: $!" unless defined($pid);
if ($pid) {
my $output;
while (<KID>) {
print STDOUT $_;
$output .= $_; # could be improved...
}
close(KID);
return $output;
} else {
exec @_;
}
}

my @cmd = ('/bin/ls', '-l');
my $output = backtick(@cmd);

关于perl - 如何将 Perl 输出发送到 STDOUT 和变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/634508/

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