Perl无法打开同时运行和运行的命令管道,这会在通过qsub提交到SGE时导致问题,因为我丢失了提交的作业ID。如何将生成的脚本提交给SGE 和捕获SGE分配的作业ID?
答案 0 :(得分:5)
这是Perl常见问题:How can I open a pipe both to and from a command?(简答:见IPC::Open2
)
另一种方法是使用shell中的I / O重定向工具来捕获外部程序的输出:
open my $qsub_proc, '|-', "qsub $command $args > some/file";
print {$qsub_proc} $the_input_to_the_command;
close $qsub_proc;
open my $qsub_fh, '<', 'some/file';
my @qsub_output = <$qsub_fh>;
... # now parse @qsub_output to get your job id