如何在Perl中运行外部程序?

AGe*_*eek -1 c perl

我想使用Perl脚本执行C程序.什么输入手动给C可执行文件,这些应该由我的程序给出..

让我们采取一个简单的程序,输入两个nos.并打印出它的总和.值应由Perl脚本提供.

请指导我完成一些我可以实现相同目的的教程.

dav*_*420 5

使用系统功能:

system "my-c-program 1 2";
Run Code Online (Sandbox Code Playgroud)

如果要在perl脚本中捕获C程序的输出,请使用反引号或qx//运算符:

my $output = `my-c-program 1 2`;
Run Code Online (Sandbox Code Playgroud)

它运行my-c-program 1 2并将标准输出捕获到一个新$output变量中.


小智 5

好吧,如果你刚刚学习如何在Perl中运行外部程序 - 请帮个忙,忘记``.

``的问题是你在其中执行带有参数的字符串 - 所以必须对其进行解析.当用户提供参数时,这可能会导致问题.

如果您100%确定您可以完全控制参数和命令名称 - 您可以使用``,但对于任何其他情况 - 请考虑使用IPC :: Run.

它有点复杂,但它不需要任何参数解析的唯一事实就是更好.另外,您可以完全控制已执行程序的stdin,stdout和stderr - 包括将回调附加到它们!