У меня есть скрипт на Perl
for my $i (1..10) {
print "How $i\n";
sleep(1);
}
Я хочу запустить его из другого сценария perl и записать его вывод. Я знаю, что могу использовать qx () или обратные метки, но они вернут все выходные одновременно, когда программа выйдет.
Но вместо этого я хочу напечатать вывод первого сценария из второго сценария, как только они станут доступны, т.е. для примера кода вывод первого скрипта печатается за десять шагов второго скрипта, а не за один раз.
Я посмотрел на этот вопрос и написал свой второй сценарий как
my $cmd = "perl a.pl";
open my $cmd_fh, "$cmd |";
while(<$cmd_fh>) {
print "Received: $_\n";
STDOUT->flush();
}
close $cmd_fh;
Однако вывод все еще печатается одновременно. Я хотел знать, как это сделать?