我正在调用一系列Perl脚本,我希望所有stdout / stderr到达命令行。 我有两个脚本:
A.pl
print "Hello from A\n";
`perl B.pl`;
print "Back to A\n";
B.pl
print "Hello from B\n";
当我致电 perl A.pl 时,我得到:
Hello from A
Back to A
但我希望看到的是
Hello from A
Hello from B
Back to A
当然我可以更改A并明确打印B的输出,如下所示:
my $output = `perl B.pl`;
print $output;
但由于我的脚本非常复杂,我想避免它。有没有一种通用的方式来说明所有内容都打印到同一个终端?
答案 0 :(得分:5)
如果您使用系统而不是反引号,则输出将转到终端。反引号专门用于捕获其他进程的输出:
print "Hello from A\n";
system('perl B.pl');
print "Back to A\n";
答案 1 :(得分:3)
是的,如果您不想捕获输出,请停止使用反引号!
简单地做system $^X, "B.pl";
有什么问题?