I can think of three ways of passing data to PHP:
- Call it as a real CGI, using LWP to connect to your web server
- Emulate the CGI environment by setting variables such as $ENV{REQUEST_METHOD} and $ENV{QUERY_STRING}. The problem is that PHP is usually compiled in a way that disallows this for security reasons.
- Create the PHP script on the fly, including the data there. A simple example would be this:
# multiply $x by $y using php
use IPC::Open2;
my $x = 5;
my $y = 7;
my $php = "<? echo $x * $y ?>";
my ($r, $w);
my $pid = open2($r, $w, 'php -q');
print $w $php;
close $w;
my $result = <$r>;
print "$x * $y = $result\n";