我已经编写了这个程序来在嵌入式 perl 脚本中传递一个变量,但它给出了空白输出:-( 为什么它不起作用。请解决这个问题。
php脚本
<?php
$var1='high';
exec('C:/xampp/htdocs/WORK/hello.pl'.' '.EscapeShellArg("$var1"),$output);
echo ($output);
?>
perl 脚本
#!/usr/bin/perl -w
$var1=<>;
print $var1;
关于什么
$var1 = shift;
而不是从标准输入或参数文件中读取值?
因为您试图将数组作为字符串发送...您必须将数组序列化为 perl 可以反序列化的字符串,例如JSON, XML,CSV等。
一个原因是EscapeShellArg期望 $arg 参数是字符串类型,而在您的情况下,它是一个数组......