Perl脚本 - 将所有输出传输到同一个终端(如何?)

ano*_*fds 1 unix console perl stdout

我正在调用一个Perl脚本链,我希望所有stdout/stderr到达命令行.我有两个脚本:

A.pl

print "Hello from A\n";
`perl B.pl`;
print "Back to A\n";
Run Code Online (Sandbox Code Playgroud)

B.pl

print "Hello from B\n";
Run Code Online (Sandbox Code Playgroud)

当我打电话给perl A.pl时,我得到:

Hello from A
Back to A
Run Code Online (Sandbox Code Playgroud)

但我希望看到的是

Hello from A
Hello from B
Back to A
Run Code Online (Sandbox Code Playgroud)

当然我可以更改A并明确打印B的输出,如下所示:

my $output = `perl B.pl`;
print $output;
Run Code Online (Sandbox Code Playgroud)

但由于我的脚本非常复杂,我想避免它.是否有一般说明所有内容都打印到同一个终端?

Kyl*_*ton 5

如果使用系统而不是反引号,则输出将转到终端.反引号专门用于捕获其他进程的输出:

print "Hello from A\n";
system('perl B.pl');
print "Back to A\n";
Run Code Online (Sandbox Code Playgroud)