+1 to the above
Remember, PHP doesn't have anything to do with POST'ing to your perl script. The user's browser posts to your perl script. And really, it doesn't even do that; it POST's to a URL. The browser doesn't know anything about PHP or perl, all it knows is that it has some HTML coming in one side, that tells it to send some HTTP stuff to this other URL.
So your problem probably is either (a) the perl script not D'ingTRT as a CGI, or (b) the URL you're putting in not going to it. Or possibly a variant of both as (c) the server not being configured to run external CGI's, either where you put it, or anywhere.
Luckily, they all have the same solution; forget the path you're currently taking to get there (the form), and the current contents of the script (whatever processing on the data). Just replace it with a bog-simple hello-world style script, and fiddle around until you can hit it directly and get the expected output. Then just dropping in the real code and the URL in the form will probably Just Work.