【发布时间】:2012-08-01 16:25:56
【问题描述】:
在运行 Perl 程序时,子脚本的输出被打印到终端而不是进入$v。请告诉我如何解决它。
open (OUTPUT, '>', \$v);
select OUTPUT;
$| = 1;
open (SUB, "| sh print_user_input.sh");
print SUB "Hello World\n";
close(SUB);
close(OUTPUT);
select STDOUT;
print "Output: $v\n";
程序的输出是:
你好世界 输出:
【问题讨论】:
-
您应该考虑使用词法文件句柄(如
$output)而不是 typeglob(如OUTPUT),open 的 3 参数版本(如open my $sub, "|-", "./print_user_input.sh"、use autodie来捕获错误open和close和use strict,如果你还没有的话。
标签: perl