したがって、次のコードがあります。問題は、すべての子プロセス(sort / gzip)が完了する前に終了することです。すべての子孫プロセスを待つようにPerlに指示するにはどうすればよいですか?
#!/usr/bin/perl
use strict;
use warnings;
sub systemBash {
my $cmd = shift;
my @args = ( "bash", "-c", $cmd );
print "command ".$cmd."\n";
system(@args);
if($? != 0){
die "Command ".Dumper(@args)." failed";
}
}
print "start";
systemBash("yes |head -n 1000000|awk '{print rand()}' > >(sort |gzip -9 -c > /dev/null)");
print "done";