3

有什么方法可以通过 perl 脚本调用 make 实用程序。我在 myscript 中使用了以下代码

$cmd=system("/...path../make");
print "$cmd";

但它不工作

4

2 回答 2

2

你可以调用任何你想要的命令。为简单起见,它通常在反引号中完成:

my $output = `make`;
print( $output );

另一种常见的技术是打开一个像文件一样读取的进程:

my $filehandle;
if ( ! open( $filehandle, "make |" ) ) {
    die( "Failed to start process: $!" );
}
while ( defined( my $line = <$filehandle> ) ) {
    print( $line );
}
close( $line );

这样做的好处是您可以看到从流程交付的输出。

2>&1您可能希望通过添加到命令行来捕获 STDERR 输出以及 STDOUT 输出:

my $filehandle;
if ( ! open( $filehandle, "make 2>&1 |" ) ) {
    die( "Failed to start process: $!" );
}
while ( defined( my $line = <$filehandle> ) ) {
    print( $line );
}
close( $line );
于 2013-07-03T12:59:02.000 回答
2

你只需要使用反引号。

my $command = `make`;
print $command;

的返回值system是退出状态。看这里

编辑:链接到系统

于 2013-07-03T13:00:38.970 回答