<?xml version="1.0" encoding="windows-1252"?>
<node id="1008175" title="Re: Perl and PHP" created="2012-12-10 17:32:35" updated="2012-12-10 17:32:35">
<type id="11">
note</type>
<author id="757127">
tobyink</author>
<data>
<field name="doctext">
&lt;p&gt;An embedded Perl interpreter for PHP &lt;a href="http://pecl.php.net/package/perl"&gt;does exist&lt;/a&gt; but it's a pretty bizarro thing to do.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Update:&lt;/b&gt; the following works here:&lt;/p&gt;
&lt;c&gt;
&lt;?php

$perl = new Perl();
$perl-&gt;eval(&lt;&lt;&lt;'PERL'
sub add_two {
	my $n = shift;
	return $n + 2;
}
PERL
);

echo "add_two(3) is ... ", $perl-&gt;add_two(3), "\n";
&lt;/c&gt;
&lt;p&gt;Interestingly when running &lt;c&gt;print "$^X $]"&lt;/c&gt; in the embedded Perl, I get: &lt;c&gt;/usr/bin/php 5.010001&lt;/c&gt; (that version number happens to correspond to my operating system's pre-packaged version of Perl).&lt;/p&gt;
&lt;!-- Node text goes above. Div tags should contain sig only --&gt;
&lt;div class="pmsig"&gt;&lt;div class="pmsig-757127"&gt;
&lt;small&gt;&lt;small&gt;
&lt;tt&gt;perl -E'sub Monkey::do{say$_,for@_,do{($monkey=&amp;#x5B;caller(0)]-&gt;&amp;#x5B;3])=~s{::}{ }and$monkey}}"Monkey say"-&gt;Monkey::do'
&lt;/tt&gt;&lt;/small&gt;&lt;/small&gt;
&lt;/div&gt;&lt;/div&gt;</field>
<field name="root_node">
1008154</field>
<field name="parent_node">
1008154</field>
</data>
</node>
