Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将变量从php传递到正在运行的perl脚本_Php_Perl_Cross Language - Fatal编程技术网

如何将变量从php传递到正在运行的perl脚本

如何将变量从php传递到正在运行的perl脚本,php,perl,cross-language,Php,Perl,Cross Language,我有一个perl脚本,它有一个无休止的循环,每次从用户那里读取一个整数并将其添加到变量$b中 $b = 0; while ( 1 == 1 ) { $a = <STDIN>; $b = $b + $a; print $b + "\n"; } $b=0; 而(1==1){ $a=; $b=$b+a; 打印$b+“\n”; } 我有一个php表单,它有一个输入文本字段和submit按钮,当按下submit按钮时,我希望将输入文本字段中给定的值传递给正在运行的p

我有一个perl脚本,它有一个无休止的循环,每次从用户那里读取一个整数并将其添加到变量$b中

$b = 0;
while ( 1 == 1 ) {
    $a = <STDIN>;
    $b = $b + $a;
    print $b + "\n";
}
$b=0;
而(1==1){
$a=;
$b=$b+a;
打印$b+“\n”;
}
我有一个php表单,它有一个输入文本字段和submit按钮,当按下submit按钮时,我希望将输入文本字段中给定的值传递给正在运行的perl脚本,并获取$b变量的最后一个值,以在我的php表单中显示它


所以我的问题是如何在php和perl之间实现这种互连?

您可以使用
popen

$pipe = popen("/path/to/program.pl", "w");
然后,您可以将数字写入管道,然后Perl代码将相加

fwrite($pipe, "99\n");

perl和php都可以通过UNIX套接字、消息队列和FIFO等实现IPC。连接到已经运行的进程STDIN(如果它存在并且是命名的设备/对象)并不容易。

您是否尝试过exec()或system()?是的,我尝试过,但无法继续调用相同的运行脚本您控制Perl程序吗?你能让它在插座上听吗?或者别的什么,比如听TCP。你现在有三个有效的答案。我建议您阅读@simbabque,是的,我编写了Perl脚本的代码。如何使用$pipe将$b的值返回到php?@VFX:这是一个不同的问题,您需要打开一个新问题。
$pipe
连接到Perl程序的stdin,因此您无法读取它。您需要改用
proc\u open
。为什么您需要一个Perl程序来为PHP代码添加数字?实际上,我不需要一个Perl脚本来添加数字,但是这个例子很简单,我的问题是,主要思想是PHP和Perl之间的互连