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

问题描述:

我有一个perl脚本,它有一个无限循环,它从用户读取一个整数并每次将它添加到变量$ b;如何将一个变量从php传递给正在运行的perl脚本

$b = 0; 
while (1 == 1) { 
    $a = <STDIN>; 
    $b = $b + $a; 
    print $b + "\n"; 
} 

我有了一个输入的文本字段中的PHP形式提交按钮,然后按下提交按钮时,我想在输入文本字段中给出的值传递给正在运行的Perl脚本,并获得$ b变量的最后一个值显示在我的php表单中。

所以我的问题是如何做到这一点在PHP和Perl之间的互连?

+0

你试过exec()还是system()? – daheda

+0

是的,我尝试过,但我无法继续调用相同的运行脚本 – VFX

+0

您是否控制Perl程序?你可以让它在套接字上听吗?还有其他的东西,比如听TCP。 – simbabque

您可以打开一个管道,你的Perl程序的新实例popen

$pipe = popen("/path/to/program.pl", "w"); 

,那么你可以写你的号码给管和Perl代码将增加再向上

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

如何使用$ pipe将$ b的值返回给php? – VFX

+0

@VFX:这是一个不同的问题,你需要打开一个新的问题。 '$ pipe'连接到Perl程序的stdin,所以你不能读取它。您将需要使用'proc_open'来代替。为什么你需要一个Perl程序来为你的PHP代码添加数字? – Borodin

+0

非常感谢你 – VFX

perl和php都可以通过UNIX套接字,消息队列和FIFO等来完成IPC。连接到已经运行的进程STDIN - 如果它存在并且是一个命名的设备/对象 - 并不那么容易。

+0

谢谢我会搜索它 – VFX